Reshape matrix with multiple columns into 2 columns
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
lim xiang
el 10 de Mzo. de 2022
Noticed that matlab has function of reshaping matrix into specific size, but is it possible to move 2 by 2 columns, for exapmle, 3 & 4th columns below 1 & 2nd columns, so far so on?
From A to B:
A = [1 2 3 4;5 6 7 8;9 10 11 12]
B = [1 2;5 6;9 10;3 4;7 8;11 12]
Thank you =]
0 comentarios
Respuesta aceptada
KSSV
el 10 de Mzo. de 2022
A = [1 2 3 4;5 6 7 8;9 10 11 12]
B = [1 2;5 6;9 10;3 4;7 8;11 12]
iwant = [A(:,1:2) ; A(:,3:4)]
Más respuestas (1)
Stephen23
el 10 de Mzo. de 2022
Editada: Stephen23
el 10 de Mzo. de 2022
Of course, here are two general solutions.
A = [1,2,3,4;5,6,7,8;9,10,11,12]
B = [1,2;5,6;9,10;3,4;7,8;11,12] % desired output
Method one: MAT2CELL and concatentation:
C = mat2cell(A,3,[2,2]);
B = vertcat(C{:})
Method two: use RESHAPE and PERMUTE.
B = reshape(permute(reshape(A.',2,2,3),[1,3,2]),2,[]).'
You do not need to use a loop!
0 comentarios
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!