Mathematica How to Transform a Matrix in Mathematica?

AI Thread Summary
The discussion focuses on transforming a specific matrix in Mathematica by rearranging its elements to create a new structure with inserted zero rows and columns. Users suggest permuting rows and columns as a solution, with one mentioning the use of tensor products to achieve the desired format. The conversation also touches on the implementation of these operations in Mathematica, including the use of the Outer function for tensor products. Additionally, a user inquires about a general thread for Mathematica questions to avoid creating multiple threads for different queries. The thread highlights the need for efficient matrix manipulation techniques in Mathematica.
guerom00
Messages
90
Reaction score
0
[Mathematica] “Explose” a matrix

Hi all,

Sorry for the title :biggrin:
Here is what I need to do : Transform this matrix (sorry, didn't find the LaTeX for matrices; pmatrix does not work)

a b c 0 0 0 0 0 0
d e f 0 0 0 0 0 0
g h i 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0

into


a 0 0 b 0 0 c 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
d 0 0 e 0 0 f 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
g 0 0 h 0 0 i 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0

if you see what I mean… I looked into ArrayPad[] but my pattern is more complicated than a simple padding…
What's the best solution do that ?

TIA
 
Last edited:
Physics news on Phys.org
Hi guerom00! :smile:

The second matrix is the same as the top left corner of the first matrix, but with lots of zero rows and columns inserted.

So just permute the rows, and permute the columns. :smile:
 


Thanks for your response :smile:

Yeah… How to permute 2 rows or 2 columns ?
Nothing more “elegant” ?
 


I found this which is not bad :

eam4ae.jpg


:smile:
 


If

A={{1,0,0},{0,0,0},{0,0,0}}
B={{a,b,c},{d,e,f},{g,h,i}}

then your first matrix is A x B and your second matrix is B x A, where "x" means tensor product. I'm not sure if new versions of Mathematica have the "tensor product" implemented, I already use an old code made by myself for that.
 


I know if you have two matrices you can do:

A = {{a, b}, {c, d}}
B = {{1, 0, 0}, {0, 0, 0}, {0, 0, 0}}
Outer[Times, A, B] // ArrayFlattenI think by tensor product you mean outer product.EDIT: Changed SUM to Times (I had some for something else I was trying, TIMES is what you want.)
 
Last edited:


Yes, Outer[Times[]] works for tensor products of matrices.
What I use does not need ArrayFlatten...
 


Thanks :smile:

Is there a general thread for random questions on Mathematica ? I don't want to open a new thread each time…
For instance, I'm looking for a pattern (to be used in a DeleteCases[]) which match a list of zeros of arbitrary length i.e. which match {0} or {0,0} or {0,0,0}, etc…
Can someone help me ?

TIA
 

Similar threads

Back
Top