cell配列内に含ま​れる各配列のleng​thをfor文を用い​ずに出力する方法

16 visualizzazioni (ultimi 30 giorni)
Yuki Koyama
Yuki Koyama il 13 Ago 2021
Commentato: Yuki Koyama il 14 Ago 2021
cell配列内に含まれる各配列のlengthをfor文を用いずに出力する方法はありますか?
たとえば、以下の処理をfor文を用いずに、少ないステップ数で処理する方法はありますか?
cellA={ones(1,2);ones(1,3);ones(1,4)}
cellA = 3×1 cell array
{[ 1 1]} {[ 1 1 1]} {[1 1 1 1]}
N_elements=zeros(3,1);
for i=1:length(cellA)
N_elements(i)=length(cellA{i});
end
N_elements
N_elements = 3×1
2 3 4

Risposta accettata

Toru Ikegami
Toru Ikegami il 13 Ago 2021
Modificato: Toru Ikegami il 13 Ago 2021
こんにちは,
For文を使わないということで,パッと思い浮かぶのはセル配列の要素毎に処理を行い,結果をまとめて返す cellfun でしょうか.第1引数に処理関数を関数ハンドルの形で,第2引数に処理対象のセル配列を与えます.
cellA = {ones(1,2);ones(1,3);ones(1,4)}
cellA = 3×1 cell array
{[ 1 1]} {[ 1 1 1]} {[1 1 1 1]}
N_elements = cellfun(@length,cellA)
N_elements = 3×1
2 3 4
  1 Commento
Yuki Koyama
Yuki Koyama il 14 Ago 2021
ありがとうございます。まさに求めていたものです。
このような作業を今まですべてfor文で行っていたので今後のコーディングがかなり快適になりそうです。
ありがとうございました。

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su ループと条件付きステートメント in Help Center e File Exchange

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!