Convert matrix 3d into 2d

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 个评论

Do you want to just select 1 slice, sum the slices, take the mean of the slices, do something else?
Thank you for your answer.
I would like to create n matrix with dimension(a*b) from a 3D matrix (a*b*n). n is the temporal parameters of the 3 d matrix, I would like that each time step is in a new 2D matrix. Is that clearer?

请先登录,再进行评论。

回答(1 个)

Calling your matrix A,
Acell=num2cell(A,[1,2]);

6 个评论

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.
How can i extract the value from each matrix?
Just as Matt wrote: use curly brackets.
Acell{2}
Matt J
Matt J 2019-12-9
编辑:Matt J 2019-12-9
Jonathan Demmer's answer converted to a comment:
Thank you everybody, it work s well indeed...
Regards
Jonathan
You are welcome, but since it did work, please Accept-click the answer.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by