About row and column swapping in a matrix

Hi Guys. I have a question which probably could be easy or might have built in function but I kinda stuck on it. Attached is a 3x3 matrix as an image as appeared below. I want to swap the rows and columns as shown here and save each sequence of swapping. I have a very big file to handle, i have just shown a small sample here. I tried with a loop but could not get it working. I would greatly appreciate any efforts.
Thanks Rafiq

 Respuesta aceptada

Star Strider
Star Strider el 22 de Jul. de 2015
Editada: Star Strider el 22 de Jul. de 2015
I would just use circshift:
A = [0 1 2; 1 1.4 2.2; 2 2.2 2.8];
B = circshift(A, [-1 -1])
B =
1.4 2.2 1
2.2 2.8 2
1 2 0

5 comentarios

Mohammad
Mohammad el 22 de Jul. de 2015
Thanks Strider. I am sorry as my question was not clear. I actually want to generate all the sequences (all 9 matrices from top to end) and save each matrix in an array. Its not that I have a one 3x3 matrix (first matrix) and I want the end 3x3 matrix (end matrix) only after swapping rows and columns. I greatly appreciate your inputs !!!
You can still use circshift to do it easily.
To get the second one in the top row (that I call ‘A12’):
A12 = [circshift(A(:,1:2),[0 -1]) A(:,3)]
and so for the rest. You would have to figure out how best to code the loop, but various combinations of these maneuvers would generate all your matrices.
Mohammad
Mohammad el 23 de Jul. de 2015
Thanks Strider.
Star Strider
Star Strider el 23 de Jul. de 2015
My pleasure.
Rakib Seemanto
Rakib Seemanto el 1 de Nov. de 2020
how can I swap 6x6 matrix middle two rows.A = [ 1 2 3;4 5 6;7 8 9;10 11 12;13 14 15;16 17 18]
The output will be:B = [ 1 2 3;4 5 6;10 11 12;7 8 9;13 14 15;16 17 18]

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 22 de Jul. de 2015
To swap column J with column K you would use
newArray = oldArray;
newArray(:,[K J]) = newArray(:,[J K]];
For swapping rows,
newArray([K J],:) = newArray([J K],:);

1 comentario

Mohammad
Mohammad el 22 de Jul. de 2015
Thanks Walter. I actually used this technique and used a loop. The problem is when you swap the columns, all the columns are swapped and same with rows. If you look at my matrix, first I want to swap all the columns (top 3 matrix), then I want to swap first row with second row and swap all the columns (middle 3 matrix), and finally I want to swap row 2 with row 3 and swap all the columns again (the last three matrix). My loop is not working the way I want it. Thanks for looking into the problem. I appreciate it.

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 22 de Jul. de 2015

Comentada:

el 1 de Nov. de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by