How to reshape a matrix (something that can't be done with reshape function)
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Kenta Watanabe
il 12 Mag 2021
Commentato: Kenta Watanabe
il 12 Mag 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 Commenti
Risposta accettata
Stephen23
il 12 Mag 2021
Modificato: Stephen23
il 12 Mag 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 Commenti
Walter Roberson
il 12 Mag 2021
Which is to say that it can be done but it is by no means "easier" than extracting the two halves.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!