Convert a 3D array to a 2D cell array?

16 vues (au cours des 30 derniers jours)
Niky Taylor
Niky Taylor le 13 Oct 2017
Commenté : Niky Taylor le 16 Oct 2017
I'm sure there's a basic way to do this that I haven't found.
I have a 3D array, but I want to convert it into a 2D cell array where each cell contains the data currently contained in the 3rd dimension, so:
if given some 3D array A = rand(10,10,4);
make a 2D cell array B that is 10x10 cells, but each cell contains 1x4.
Thanks so much.

Réponse acceptée

Matt J
Matt J le 13 Oct 2017
B=num2cell(A,3)
  2 commentaires
Matt J
Matt J le 13 Oct 2017
but each cell contains 1x4.
If you really do need a 1x4 shape, you can do
[m,n,p]=size(A);
B=num2cell(reshape(A,[],p), 2);
B=reshape(B,m,n);
Niky Taylor
Niky Taylor le 16 Oct 2017
Thanks!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Data Type Conversion 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