i have cell array which contains multiple elements like this: a={2x1 cell,2x1 cell,2x1 cell;3x1 cell,3x1 cell,3x1 cell}
and every cell contains elements like for example for first row elements are like this:
a{1,1}{1,1}=2
a{1,1}{2,1}=2
a{1,2}{1,1}=1
a{1,2}{2,1}=1
a{1,3}{1,1}=1
a{1,3}{2,1}=-1
i want to convert this cell array into a 3D array. i have tried cell2mat but it gives following error:
"CELL2MAT does not support cell arrays containing cell arrays or objects"
please help.

 採用された回答

Stephen23
Stephen23 2017 年 4 月 14 日
編集済み: Stephen23 2017 年 4 月 14 日

0 投票

Assuming that all numeric arrays are of a size that can be concatenated together:
>> cell2mat(cellfun(@cell2mat,a,'uni',0))
ans =
2 1 1
2 1 -1
You can then use reshape to arrange the data into a 3D array. Or alternatively, use reshape or permute on the intermediate cell array:
cell2mat(permute(cellfun(@cell2mat,a,'uni',0),[1,3,2]))
As you did not state how you want the dimensions rearranged, it is hard to give more advice than that.

2 件のコメント

lucksBi
lucksBi 2017 年 4 月 14 日
Thankyou for your answer. But it gives following error.
Error using cat
Dimensions of matrices being concatenated are not consistent.
lucksBi
lucksBi 2017 年 4 月 14 日
i want answer in this form:
2 1 1
2 1 -1

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

タグ

質問済み:

2017 年 4 月 14 日

コメント済み:

2017 年 4 月 14 日

Community Treasure Hunt

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

Start Hunting!

Translated by