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

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

Akzeptierte Antwort

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

Weitere Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu データ型の変換 finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!