How to reshape a matrix

1 ビュー (過去 30 日間)
carlas
carlas 2011 年 11 月 2 日
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

採用された回答

Jan
Jan 2011 年 11 月 2 日
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 件のコメント
carlas
carlas 2011 年 11 月 2 日
thanks!

サインインしてコメントする。

その他の回答 (2 件)

Amith Kamath
Amith Kamath 2011 年 11 月 2 日
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 2011 年 11 月 2 日
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))

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by