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!