convert a 2D matrix into 3D matrix

Can anyone help me with making a 2D matrix into a 3D matrix?
I have a (105504 x 3) 2d matrix and I need to make a 3D matrix of dimensions (6 x 3 x 17584) I need to take (6 x 3) consecutive matrices by row for 17584 layers.
Can anyone help me with this? I really appreciate any help

1 commentaire

Dwight
Dwight le 5 Jan 2012
Thank you @andrei and @Walter!!! Walter, your code gave me a 3D matrix (17584x6x3). Andrei, your code worked perfectly (3D matrix (6x3x17584), Thank you for the help guys, you are awesome!!!
keep it up!!!

Connectez-vous pour commenter.

 Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 4 Jan 2012

0 votes

a - your array (105504 x 3)
out = permute(reshape(a.', 3,6,[]),[2 1 3]);

1 commentaire

Dwight
Dwight le 5 Jan 2012
Andrei, your code worked perfectly (3D matrix (6x3x17584)). Thank you very much.

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 4 Jan 2012

0 votes

Please try
B = permute(reshape(A, 6, [], 3),[2 1 3]);

1 commentaire

Dwight
Dwight le 5 Jan 2012
Walter, your code gave me a 3D matrix (17584x6x3).
Andrei's code gave me the correct dimensions I needed, but I appreciate your quick and expert response.
Thank you much

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by