How to reshape a matrix

1 vue (au cours des 30 derniers jours)
carlas
carlas le 2 Nov 2011
Hello,
For example I would like to reshape the following matrix
1 0 0 2 0 0
0 1 0 0 2 0
to
1 0 0
0 1 0
2 0 0
0 2 0
The number of horizontally stacked matrices is now 2,so the solution is easy b = [a(1:2,:); a(3:end,:)];
The question is now how to do this for n horizontally stacked matrices without using a loop? Does someone know?
Kind regards, Carlas

Réponse acceptée

Jan
Jan le 2 Nov 2011
A = [1 0 0 2 0 0; 0 1 0 0 2 0];
B = reshape(permute(reshape(A, 2, 3, 2), [1, 3, 2]), 4, 3)
  1 commentaire
carlas
carlas le 2 Nov 2011
thanks!

Connectez-vous pour commenter.

Plus de réponses (2)

Amith Kamath
Amith Kamath le 2 Nov 2011
if A is the first matrix that you defined, do:
B = [A(1:2,1:3);A(1:2,4:6)] to choose the required rows and columns from A to define B.

carlas
carlas le 2 Nov 2011
a(:,:,1)=eye(3,2);
a(:,:,2)=2.*eye(3,2);
B = reshape(permute(a, [1, 3, 2]), size(a,3)*size(a,1),size(a,2))

Catégories

En savoir plus sur Logical 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!

Translated by