How to convert cells within cells to double.

17 visualizaciones (últimos 30 días)
Megha
Megha el 23 de Oct. de 2018
Editada: Bruno Luong el 23 de Oct. de 2018
How to convert cells within cells to double.
cell2mat(cell2mat(a))
does not work

Respuestas (3)

madhan ravi
madhan ravi el 23 de Oct. de 2018
Editada: madhan ravi el 23 de Oct. de 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
>>
  3 comentarios
Megha
Megha el 23 de Oct. de 2018
Thanks @Ravi I got the answer
x = cell2mat(table2array(cell2table((x))));
madhan ravi
madhan ravi el 23 de Oct. de 2018
glad that you found

Iniciar sesión para comentar.


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

Bruno Luong
Bruno Luong el 23 de Oct. de 2018
Editada: Bruno Luong el 23 de Oct. de 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

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by