Reshape matrix with multiple columns into 2 columns
2 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
KSSV
2022 年 3 月 10 日
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)]
その他の回答 (1 件)
Stephen23
2022 年 3 月 10 日
編集済み: Stephen23
2022 年 3 月 10 日
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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!