MATLAB Answers

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

4 views (last 30 days)
翔 池田
翔 池田 on 2 Sep 2021
Answered: Hernia Baby on 2 Sep 2021
A={[1;2;3;4;5]}
上記のA:cell配列内にある{5×1 double}の行サイズを求める方法を教えてほしいです.
今回の場合,ans= 5 です。
宜しくお願い致します.
cell2matを用いずにしたいです.

Accepted Answer

Hernia Baby
Hernia Baby on 2 Sep 2021
例としてサイズを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

More Answers (1)

stozaki
stozaki on 2 Sep 2021
池田様
こんにちは。配列のサイズを求めるには、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 Comment
翔 池田
翔 池田 on 2 Sep 2021
早急なご返答ありがとうございます.
cell2matを用いずにサイズを求める方法はありますでしょうか.
cell2matですとdoubleへの変換に計算コストがかかってしまうため,避けたいと考えております.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!