Reshape matrix with multiple columns into 2 columns
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
KSSV
le 10 Mar 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)]
Plus de réponses (1)
Stephen23
le 10 Mar 2022
Modifié(e) : Stephen23
le 10 Mar 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 commentaires
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!