How to quickly change 3D to 2D Matrix

I've a Matrix e.g.
A(:,:,1) =
1 1 1
2 2 2
3 3 3
A(:,:,2) =
4 4 4
5 5 5
6 6 6
A(:,:,3) =
7 7 7
8 8 8
9 9 9
As a result I want a Matrix "B" that is just 2D in the following shape:
B =
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
I played around with reshape() and permute() or repmat() but couldn't get to the desired result. I solved the problem with a loop but I want to avoid loops!
Thanks!

 Accepted Answer

Andrei Bobrov
Andrei Bobrov on 17 Dec 2013
Edited: Andrei Bobrov on 17 Dec 2013
B = reshape(permute(A,[2 1 3]),size(A,2),[])';
or
p = num2cell(A,[1 2]);
B = cat(1,p{:});

More Answers (0)

Categories

Find more on Mathematics in Help Center and File Exchange

Asked:

Tim
on 17 Dec 2013

Commented:

Tim
on 17 Dec 2013

Community Treasure Hunt

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

Start Hunting!