Convert matrix 3d into 2d
Afficher commentaires plus anciens
Hello all,
I have matrix (a*b*n) (3d matrix), I would like to convert it into n 2D matrix (a*b). Can someone help me, please?
Jonathan
2 commentaires
Rik
le 9 Déc 2019
Do you want to just select 1 slice, sum the slices, take the mean of the slices, do something else?
Jonathan Demmer
le 9 Déc 2019
Réponses (1)
Matt J
le 9 Déc 2019
Calling your matrix A,
Acell=num2cell(A,[1,2]);
6 commentaires
Jonathan Demmer
le 9 Déc 2019
Hello,
Thank you for the answer, but it does not seem to work properly as it does not create n 2D matrix from a 3D matrix (a*b*n).
Yes, it does. Example,
>> A=rand(2,3,4);
>> Acell=num2cell(A,[1,2]); Acell=Acell(:)
Acell =
4×1 cell array
{2×3 double}
{2×3 double}
{2×3 double}
{2×3 double}
Each Acell{i} behaves in all ways like a separate 2x3 image variable. It has its own memory block and everything.
Jonathan Demmer
le 9 Déc 2019
How can i extract the value from each matrix?
Rik
le 9 Déc 2019
Just as Matt wrote: use curly brackets.
Acell{2}
Matt J
le 9 Déc 2019
You are welcome, but since it did work, please Accept-click the answer.
Catégories
En savoir plus sur Logical dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!