0

MATLAB では、スクリプトから次のようなデータが出力されます。

A1 = [1 2;3 4]
A2 = [2 2; 4 5]
A3 = [3 5; 7 8]

各変数とプロットをステップ実行するための for ループを作成する必要があります。何かのようなもの:

for i = 1:3
plot(A(i))
end

したがって、A1 はプロットを生成します。A2 はプロットを生成します。A3 はプロットを生成します。

ありがとう

4

3 に答える 3

5

これらの変数を出力するスクリプトを変更して、セル配列または構造体に貼り付けることをお勧めします。

それが不可能な場合は、3 つしかない場合は、セル配列に手動で貼り付けることをお勧めします。A{1} = A1; A{2} = A2; A{3} = A3

これらのどちらも本当に本当にできない場合にのみ、使用を検討する必要がありますeval

for ii = 1:n
    eval(['plot(A', num2str(ii), ')']);
end

デバッグするには、正しいコードを生成していることを確認するためにeval、に置き換えることをお勧めしますdisp

于 2013-05-09T21:57:49.540 に答える
5

あなたができることは使用することですeval

for ii = 1:3
   cmd = sprintf('plot( A%d );', ii );
   eval( cmd );
end

ただし、使用evalはお勧めしません。最良の方法は、A1...A3を生成するコードを変更できる場合です。これにより、セル配列A{1}、... A{3}、または構造体フィールドS.A1、...、のいずれかを作成できますS.A3

于 2013-05-09T21:54:30.620 に答える
1

eval(変数 variable をエミュレートします) およびfigure(各 A の Figure を作成します)を使用してループします。

A1 = [1 2;3 4];
A2 = [2 2; 4 5];
A3 = [3 5; 7 8];

for i = 1:3
    figure(i);
    eval(['plot(A' num2str(i) ');'])
end

多くの As がある場合、ループの eval 行の直後に次の行を挿入して、プロットを自動的に保存することができます。

print('-dpng','-r100',['A' int2str(i)])
于 2013-05-09T21:59:52.823 に答える