4

MATLAB のループの各反復で変数の名前を変更する方法が存在するかどうか誰か教えてください。

実は、ループ内の変数をループのインデックスを組み込んだ別の名前で保存したいのです。ありがとう。

4

3 に答える 3

12

あなたのコメントに基づいて、セル配列を使用することをお勧めします。これにより、あらゆるタイプの結果をインデックス別に格納できます。例えば:

foo=cell(bar,1);
for ii=1:bar
    foo{ii}=quux;
end

fooその後、すべての中間結果を保持するために保存できます。ループ インデックスは必要に応じて変数名に焼き付けられませんが、これは同じ機能を提供します。

于 2013-08-09T09:17:12.080 に答える
8

「なぜこれが必要なのですか?」という質問を無視して、eval()関数を使用できます。

例:

for i = 1:3
  eval(['val' num2str(i) '=' num2str(i * 10)]);
end

出力は次のとおりです。

val1 =
    10

val2 =
    20

val3 =
    30
于 2013-08-09T08:45:35.000 に答える
0

別の方法として、構造体を使用してループ インデックスをフィールドの名前に保存します。

for ii=1:bar
    foo.(["var" num2str(ii)]) = quux;
end

foo.var1これにより、などのフィールドを持つ構造が作成されますfoo.var1。これは、を使用せずに必要なことを行いevalます。

于 2013-08-09T09:55:49.517 に答える