MATLAB のループの各反復で変数の名前を変更する方法が存在するかどうか誰か教えてください。
実は、ループ内の変数をループのインデックスを組み込んだ別の名前で保存したいのです。ありがとう。
MATLAB のループの各反復で変数の名前を変更する方法が存在するかどうか誰か教えてください。
実は、ループ内の変数をループのインデックスを組み込んだ別の名前で保存したいのです。ありがとう。
あなたのコメントに基づいて、セル配列を使用することをお勧めします。これにより、あらゆるタイプの結果をインデックス別に格納できます。例えば:
foo=cell(bar,1);
for ii=1:bar
foo{ii}=quux;
end
foo
その後、すべての中間結果を保持するために保存できます。ループ インデックスは必要に応じて変数名に焼き付けられませんが、これは同じ機能を提供します。
「なぜこれが必要なのですか?」という質問を無視して、eval()
関数を使用できます。
例:
for i = 1:3
eval(['val' num2str(i) '=' num2str(i * 10)]);
end
出力は次のとおりです。
val1 =
10
val2 =
20
val3 =
30
別の方法として、構造体を使用してループ インデックスをフィールドの名前に保存します。
for ii=1:bar
foo.(["var" num2str(ii)]) = quux;
end
foo.var1
これにより、などのフィールドを持つ構造が作成されますfoo.var1
。これは、を使用せずに必要なことを行いeval
ます。