Reshape matrix by taking two consecutive rows every two rows
Mostrar comentarios más antiguos
Hello everyone,
I have seen quite some questions here on the forum that are about matrix reshaping. However, for my particular problem I did not find an answer. So, here we are:
I have got a matrix that looks like
[1 1 1 1;
2 2 2 2;
3 3 3 3;
4 4 4 4;
5 5 5 5;
6 6 6 6;
7 7 7 7;
8 8 8 8]
Is it somehow possible to reshape it to
[1 1 1 1 3 3 3 3;
2 2 2 2 4 4 4 4;
5 5 5 5 7 7 7 7;
6 6 6 6 8 8 8 8]
with the built-in functions like reshape, permutate, flip,...?
There would always be the way with for loops but I thought it might be neater (and possibly faster) to do it with the built-in functions.
Thanks for your help.
Respuesta aceptada
Más respuestas (1)
Taimoor Hasan Khan
el 23 de Mzo. de 2021
A = [1 1 1 1;
2 2 2 2;
3 3 3 3;
4 4 4 4;
5 5 5 5;
6 6 6 6;
7 7 7 7;
8 8 8 8];
A = cat( 2, [ A(1:2, :); A(5:6, :) ], [ A(3:4, :); A(7:8, :) ] )
% vertical concat. #1 % vertical concat #2

Not sure how you could generalize the process without loops though, sorry...
1 comentario
Pascal Weller
el 31 de Mzo. de 2021
Categorías
Más información sobre Matrix Indexing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!