How to convert cells within cells to double.

5 views (last 30 days)
Megha
Megha on 23 Oct 2018
Edited: Bruno Luong on 23 Oct 2018
How to convert cells within cells to double.
cell2mat(cell2mat(a))
does not work

Answers (3)

madhan ravi
madhan ravi on 23 Oct 2018
Edited: madhan ravi on 23 Oct 2018
>> a=rand(1,20);
a=num2cell(a)
c=(cell2mat(a))
a =
1×20 cell array
Columns 1 through 5
{[0.5238]} {[0.5338]} {[0.8043]} {[0.0651]} {[0.5096]}
Columns 6 through 10
{[0.7079]} {[0.4156]} {[0.9226]} {[0.0987]} {[0.6105]}
Columns 11 through 15
{[0.7985]} {[0.2011]} {[0.3426]} {[0.2271]} {[0.7768]}
Columns 16 through 20
{[0.2135]} {[0.6125]} {[0.9852]} {[0.2758]} {[0.7852]}
c =
Columns 1 through 7
0.5238 0.5338 0.8043 0.0651 0.5096 0.7079 0.4156
Columns 8 through 14
0.9226 0.0987 0.6105 0.7985 0.2011 0.3426 0.2271
Columns 15 through 20
0.7768 0.2135 0.6125 0.9852 0.2758 0.7852
>>

Andrei Bobrov
Andrei Bobrov on 23 Oct 2018
Let A - your cell array with cells
out = cell2mat(cellfun(@cell2mat,A,'un',0));

Bruno Luong
Bruno Luong on 23 Oct 2018
Edited: Bruno Luong on 23 Oct 2018
Just cascading CAT as many as nested level
>> c={{[1 2]} {[3 4 5]}}
c =
1×2 cell array
{1×1 cell} {1×1 cell}
>> c1=cat(2,c{:})
c1 =
1×2 cell array
{1×2 double} {1×3 double}
>> a= cat(2,c1{:})
a =
1 2 3 4 5
>>
Or doing in loop
a = c;
for level=1:2
a = cat(2,a{:});
end

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!