cell array in cell array

6 ビュー (過去 30 日間)
Takahiro
Takahiro 2021 年 4 月 6 日
コメント済み: Takahiro 2021 年 4 月 6 日
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

採用された回答

Stephen23
Stephen23 2021 年 4 月 6 日
編集済み: Stephen23 2021 年 4 月 6 日
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 件のコメント
Takahiro
Takahiro 2021 年 4 月 6 日
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".

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

その他の回答 (1 件)

KSSV
KSSV 2021 年 4 月 6 日
n = length(a) ;
iwant = zeros(n,1) ;
for i = 1:n
iwant(i) = a{i}{3} ;
end
  1 件のコメント
Takahiro
Takahiro 2021 年 4 月 6 日
Thanks.
But this case, a is given.

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

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by