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

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.

 採用された回答

Matt J
Matt J 2017 年 10 月 13 日

0 投票

B=num2cell(A,3)

2 件のコメント

Matt J
Matt J 2017 年 10 月 13 日
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 2017 年 10 月 16 日
Thanks!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

質問済み:

2017 年 10 月 13 日

コメント済み:

2017 年 10 月 16 日

Community Treasure Hunt

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

Start Hunting!

Translated by