cell array in cell array

1 Ansicht (letzte 30 Tage)
Takahiro
Takahiro am 6 Apr. 2021
Kommentiert: Takahiro am 6 Apr. 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

Akzeptierte Antwort

Stephen23
Stephen23 am 6 Apr. 2021
Bearbeitet: Stephen23 am 6 Apr. 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 Kommentar
Takahiro
Takahiro am 6 Apr. 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".

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by