cell array in cell array

2 visualizaciones (últimos 30 días)
Takahiro
Takahiro el 6 de Abr. de 2021
Comentada: Takahiro el 6 de Abr. de 2021
a=cell(10,1);
for n=1:10
a{n}=cell(3,1);
a{n}{1}=datestr( now() );
a{n}{2}=now();
a{n}{3}=n;
end
% OK
a{1}
{'06-Apr-2021 19:02:25'}
{[ 7.3825e+05]}
{[ 1]}
% OK
a{1}{1}
'06-Apr-2021 19:02:25'
% I would like to obtain by
b = a{1:10}{3}
1,2,,,,,,10 % array

Respuesta aceptada

Stephen23
Stephen23 el 6 de Abr. de 2021
Editada: Stephen23 el 6 de Abr. de 2021
If you really want to use inconvenient nested cell arrays, this will work with your example data:
b = [a{:}];
b = [b{3,:}]
b = 1×10
1 2 3 4 5 6 7 8 9 10
Note that using just one cell array (no nested cell arrays) makes this task simpler:
a = cell(10,3);
for n = 1:10
a{n,1} = datestr( now() );
a{n,2} = now();
a{n,3} = n;
end
a{1,1}
ans = '06-Apr-2021 10:59:13'
a{1,2}
ans = 7.3825e+05
b = [a{:,3}]
b = 1×10
1 2 3 4 5 6 7 8 9 10
  1 comentario
Takahiro
Takahiro el 6 de Abr. de 2021
Thanks a lot!
Your answer is what I wanted, since cell array a "inconvinient nested cell array" is given by another code.
The code you indicated worked well as I imaged.
In addition, It was good opetunity to learn about "comma-separated lists".

Iniciar sesión para comentar.

Más respuestas (1)

KSSV
KSSV el 6 de Abr. de 2021
n = length(a) ;
iwant = zeros(n,1) ;
for i = 1:n
iwant(i) = a{i}{3} ;
end
  1 comentario
Takahiro
Takahiro el 6 de Abr. de 2021
Thanks.
But this case, a is given.

Iniciar sesión para comentar.

Categorías

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

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by