How to reshape a matrix (something that can't be done with reshape function)
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Kenta Watanabe
le 12 Mai 2021
Commenté : Kenta Watanabe
le 12 Mai 2021
Let's say I have a matrix A:
A = [1 4 7 10; 2 5 8 11; 3 6 9 12]
A =
1 4 7 10
2 5 8 11
3 6 9 12
and B = reshape(A,6,2) will return:
B =
1 7
2 8
3 9
4 10
5 11
6 12
But I'm wondering if there is any way to rearrange this matrix into something that looks like this:
B =
1 4
2 5
3 6
7 10
8 11
9 12
I'd like to know an easier way than doing:
B = [A(:,[1 2]) ; A(:,[3 4])]
Thank you in advance!
0 commentaires
Réponse acceptée
Stephen23
le 12 Mai 2021
Modifié(e) : Stephen23
le 12 Mai 2021
A = [1,4,7,10;2,5,8,11;3,6,9,12]
nmc = 2; % output number of columns
nmr = 3; % output number of rows per "group"
B = reshape(permute(reshape(A,nmr,nmc,[]),[1,3,2]),[],nmc)
2 commentaires
Walter Roberson
le 12 Mai 2021
Which is to say that it can be done but it is by no means "easier" than extracting the two halves.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Indexing 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!