Info
This question is closed. Reopen it to edit or answer.
How to convert 3D matrix to 2D with a specific format
1 view (last 30 days)
Show older comments
Hello all :)
I have a [1000,64,10] matrix and want to change it to a [10000,64] in a way that the first 1000 rows in 2D matrix belong to [:,:,1] in 3D matrix and the 2nd 1000 rows to [:,:,2] and so on, in other words I want the element (1001,1) in the new matrix corresponds to (1,1,2) in the old one and (2001,1) corresponds to (1,1,3) and so on.
Is there any function applying this rule?
Thanks :)
0 Comments
Answers (2)
Azzi Abdelmalek
on 4 Mar 2014
A=rand(1000,64,10);
B=permute(A,[ 2 1 3]);
out=B(:,:)'
5 Comments
Azzi Abdelmalek
on 5 Mar 2014
RH, I posted a short example, I think my code is doing what you asked. If not, please, post the expected result from my short example
Andrei Bobrov
on 5 Mar 2014
Edited: Andrei Bobrov
on 5 Mar 2014
A = randi(100,3,4,4);
a1 = num2cell(A,[1 2]);
out = cat(1,a1{:});
or
out = reshape(permute(A,[1 3 2]),[],size(A,2));
1 Comment
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!