for文での繰り返し回数の値を変数名として用いたい
    67 views (last 30 days)
  
       Show older comments
    
現在for文を用いて複数画像に処理を行おうと考えています。変数名与える際にfor文の繰り返し回数を変数名として使いたいです。具体的には
%繰り返し処理
for c=1:10
    %何らかの処理を行う
    data"c"=%処理結果%
end
上記のように、1回目の処理なら"data1"二回目なら”data2"~”data10"というように変数名に繰り返し回数を組み込みたいのですが、このような処理は可能でしょうか?
ご教授お願いします。
0 Comments
Accepted Answer
  Hernia Baby
      
 on 8 Jun 2022
        
      Edited: Hernia Baby
      
 on 8 Jun 2022
  
      できますがオススメできない方法です。
eval関数を使うことになります。
for ii = 1:10
    eval(sprintf('data%i = %i;',ii,ii))
end
who
data2
@Shunichi Kusanoさんの言う通りcell型が無難かなと思います
ひとつに格納できますしね
data = cell(10,1);
for ii = 1:10
    data{ii} = 2*ii;
end
data{1:10}
2 Comments
  Hernia Baby
      
 on 8 Jun 2022
				data = cell(10,1);
for ii = 1:10
    data{ii} = ii;
end
data
2を各要素にかけてみます
data = cellfun(@(x) 2*x,data,'UniformOutput',false)
More Answers (1)
  Shunichi Kusano
    
 on 8 Jun 2022
        こうしたケースでは通常配列を使うのがおススメです。
例えばforループごとにセル配列にデータを突っ込んでいく方法です。
%繰り返し処理
data = cell(10,1);
for i=1:10
    %何らかの処理を行う
    data(i) = %処理結果%    
end
後から
data(2)
などと番号を入れれば該当のデータを取り出すことができます。
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

