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

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

Réponse acceptée

Hernia Baby
Hernia Baby le 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

Plus de réponses (1)

stozaki
stozaki le 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 commentaire
翔 池田
翔 池田 le 2 Sep 2021
Modifié(e) : 翔 池田 le 2 Sep 2021
早急なご返答ありがとうございます.
cell2matを用いずにサイズを求める方法はありますでしょうか.
cell2matですとdoubleへの変換に計算コストがかかってしまうため,避けたいと考えております.

Connectez-vous pour commenter.

Catégories

En savoir plus sur データ型の変換 dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!