cell配列内のサイズを求めたいです.

37 ビュー (過去 30 日間)
翔 池田
翔 池田 2021 年 9 月 2 日
回答済み: Hernia Baby 2021 年 9 月 2 日
A={[1;2;3;4;5]}
上記のA:cell配列内にある{5×1 double}の行サイズを求める方法を教えてほしいです.
今回の場合,ans= 5 です。
宜しくお願い致します.
cell2matを用いずにしたいです.

採用された回答

Hernia Baby
Hernia Baby 2021 年 9 月 2 日
例としてサイズを1列ごとに増やしていきます
for i = 1:5
A{i} = rand(i);
end
特定の行列のサイズを知りたい場合は A{要素番号} をお使いください
size(A{4})
ans = 1×2
4 4
まとめて見る場合は cellfun をご利用ください
[row,col] = cellfun(@size,A)
row = 1×5
1 2 3 4 5
col = 1×5
1 2 3 4 5

その他の回答 (1 件)

stozaki
stozaki 2021 年 9 月 2 日
池田様
こんにちは。配列のサイズを求めるには、size関数が使えると思います。
ただし、今回は1x1のcellに5x1の配列を入れているので、次のようになると思います。
A={[1;2;3;4;5]}
A = 1×1 cell array
{5×1 double}
s = size(cell2mat(A),1)
s = 5
もしくは、length関数でも同じ結果を得ることができます。
s = length(cell2mat(A))
s = 5
  1 件のコメント
翔 池田
翔 池田 2021 年 9 月 2 日
編集済み: 翔 池田 2021 年 9 月 2 日
早急なご返答ありがとうございます.
cell2matを用いずにサイズを求める方法はありますでしょうか.
cell2matですとdoubleへの変換に計算コストがかかってしまうため,避けたいと考えております.

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

カテゴリ

Help Center および File Exchangeデータ型の変換 についてさらに検索

Community Treasure Hunt

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

Start Hunting!