How can I convert a cell array into a double array

I would like to ask how to convert a set of cells (A{:}) in a cell array (A), to a set of double array.
A cell is let's say n by n cell, and the inner cell is m by m cell. In my case, I have 96 by 96 of A cell, and 5 of 1 by 5 cells for each cell in A cell array.
In this case, I would like to make the cellMatrix{1,3} into a double array, which becomes:
[0.1092 5.91663e-4 0 5.91663e-4 5.91663e-4;
5.91663e-4 0.0156 0.1044 0.0156 5.91663e-4;
0 0.1044 0.5570 0.1044 0 ;
5.91663e-4 0.0156 0.1044 0.0156 5.91663e-4;
0.1092 5.91663e-4 0 5.91663e-4 5.91663e-4;]
for every cell.
I have tried to use cell2mat(cellMatrix{:}), but it did not work.
It will be much appreciated for any help.

 採用された回答

Andrei Bobrov
Andrei Bobrov 2019 年 2 月 21 日
編集済み: Andrei Bobrov 2019 年 2 月 21 日

1 投票

out = cell2mat(cellfun(@(x)cell2mat(cat(1,x{:})).',CellMatrix,'un',0));

1 件のコメント

Dan Park
Dan Park 2019 年 2 月 21 日
編集済み: Dan Park 2019 年 2 月 21 日
Thank you for you help Andrei,
This answer solves the problem. Could you please be so kind as to briefly describe the function 'cellfun(@(x))'?
From my understanding, this function calls each cell from a set of cells, and applies a function to it. Is my understanding correct?
Thank you again.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCell Arrays についてさらに検索

質問済み:

2019 年 2 月 21 日

編集済み:

2019 年 2 月 21 日

Community Treasure Hunt

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

Start Hunting!

Translated by