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

 採用された回答

Titus Edelhofer
Titus Edelhofer 2014 年 6 月 25 日

12 投票

HI Joe,
if I'm not mistaken, it should be
permute(reshape(X, 512, 140, 8), [1 3 2]);
Titus

3 件のコメント

Joe M
Joe M 2014 年 6 月 25 日
yes it works! thanks
Titus Edelhofer
Titus Edelhofer 2014 年 6 月 25 日
Hi Joe,
thanks. Could you please accept the answer then so others know it's already answered?
Titus
Christopher Ndehedehe
Christopher Ndehedehe 2014 年 9 月 2 日
Answer is great. it helped as well. Thanks Joe

サインインしてコメントする。

その他の回答 (1 件)

amit
amit 2016 年 10 月 3 日

0 投票

permute(reshape(X, 512, 140, 8), [1 3 2]); what is [1 3 2] stands for?

1 件のコメント

Walter Roberson
Walter Roberson 2016 年 10 月 4 日
"B = permute(A,order) rearranges the dimensions of A so that they are in the order specified by the vector order"
In your case it would rearrange reshape(X, 512, 140, 8) to be 512 x 8 x 140 by rearranging the elements. What was previously indexed at location (I,J,K) would be at location (I,K,J) in the new array.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File Exchange で Matrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by