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 はプロットを生成します。
ありがとう
これらの変数を出力するスクリプトを変更して、セル配列または構造体に貼り付けることをお勧めします。
それが不可能な場合は、3 つしかない場合は、セル配列に手動で貼り付けることをお勧めします。A{1} = A1; A{2} = A2; A{3} = A3
これらのどちらも本当に本当にできない場合にのみ、使用を検討する必要がありますeval
for ii = 1:n
eval(['plot(A', num2str(ii), ')']);
end
デバッグするには、正しいコードを生成していることを確認するためにeval
、に置き換えることをお勧めしますdisp
あなたができることは使用することです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
。
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)])