"Row-wise" reshape of 3d matrix -> 2d matrix
조회 수: 6 (최근 30일)
이전 댓글 표시
I need to do a reshape of a 3d matrix to a 2d matrix, but where first row of each matrix along the 3d dimension corresponds to the first "set" of rows in the finished 2d matrix.
For example, lets say I have a matrix like this:
M(:,:,1) = [
111 121
211 221]
M(:,:,2) = [
112 122
212 222]
M(:,:,3) = [
113 123
213 223]
I want it to be reshaped into
M_Reshaped
111 121
112 122
113 123
211 221
212 222
213 223
I know about
reshape(permute(M,[1 3 2]), [], 3, 1);
But that simply stacks each matrix along the 3d dimension on top of each other, which is not what I want to achieve. I could do it in a loop, but I've got a feeling there's a more elegant and efficient way that I have not managed to figure out.
댓글 수: 0
채택된 답변
Guillaume
2018년 9월 7일
You simply need a different permutation of the dimensions:
reshape(permute(M, [3 1 2]), [], size(M, 2))
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!