How to reshape this matrix?

1 view (last 30 days)
endeavour90
endeavour90 on 6 Apr 2012
Currently I have 3 dimensional matrix of size (2,3,3)
A(:,:,1) =
1 2 3
4 5 6
A(:,:,2) =
7 8 9
10 11 12
A(:,:,3) =
13 14 15
16 17 18
I would like to reshape it into [6 3] matrix so that it will become
A =
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18
I try to use reshape(A,[6 3]); But it return the wrong matrix
Is there any quick way to do this?

Accepted Answer

Gautam Vallabha
Gautam Vallabha on 6 Apr 2012
Test matrix
A = rand(2,3,3);
Solution #1
D = reshape(permute(A, [1 3 2]), [6 3])
Solution #2
B = mat2cell(A, 2, 3, [1 1 1]); % slice into 3 cells (along dim 3)
C = squeeze(B); % flatten from dim 3 to dim 1
D = vertcat(C{:}); % vertically append the three matrices

More Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!