How to quickly change 3D to 2D Matrix
1 次查看(过去 30 天)
显示 更早的评论
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!
0 个评论
采纳的回答
Andrei Bobrov
2013-12-17
编辑:Andrei Bobrov
2013-12-17
B = reshape(permute(A,[2 1 3]),size(A,2),[])';
or
p = num2cell(A,[1 2]);
B = cat(1,p{:});
更多回答(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!