Effacer les filtres
Effacer les filtres

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

183 vues (au cours des 30 derniers jours)
Linjun He
Linjun He le 26 Déc 2018
Modifié(e) : Linjun He le 26 Déc 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

Réponse acceptée

Akira Agata
Akira Agata le 26 Déc 2018
It's time to use reshape function! Please try the following:
A = reshape(C',[2,3,3]);
  1 commentaire
Linjun He
Linjun He le 26 Déc 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!

Connectez-vous pour commenter.

Plus de réponses (1)

Linjun He
Linjun He le 26 Déc 2018
Modifié(e) : Linjun He le 26 Déc 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

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by