How do I convert a 2d matrix to a 3d matrix?

69 Ansichten (letzte 30 Tage)
Linjun He
Linjun He am 26 Dez. 2018
Bearbeitet: Linjun He am 26 Dez. 2018
A(:,:,1) = ones(2,4);
A(:,:,2) = 2*ones(2,4);
A(:,:,3) = 3*ones(2,4);
C = [ones(2,4);2*ones(2,4);3*ones(2,4)];
In this post and this post, converting 3d matrix A to 2d matrix C is discussed.
However, how do I convert 2d matrix C back to 3d matrix A?
A(:,:,1) =
1 1 1 1
1 1 1 1
A(:,:,2) =
2 2 2 2
2 2 2 2
A(:,:,3) =
3 3 3 3
3 3 3 3
C =
1 1 1 1
1 1 1 1
2 2 2 2
2 2 2 2
3 3 3 3
3 3 3 3

Akzeptierte Antwort

Akira Agata
Akira Agata am 26 Dez. 2018
It's time to use reshape function! Please try the following:
A = reshape(C',[2,3,3]);
  1 Kommentar
Linjun He
Linjun He am 26 Dez. 2018
I modified the question. And now the answer from @Akira is
A = reshape(C',[2,4,3]);
It works well in this case.
Thank you!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Linjun He
Linjun He am 26 Dez. 2018
Bearbeitet: Linjun He am 26 Dez. 2018
Similarly, I find this works:
permute(reshape(C, 2, 3, 4), [1 3 2])
If you find answer from @Akira does not work in your case, you can refer to this answer :p
And this answer is from @Titus

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by