0

多くのプロットを含むコードがあります。問題は、たとえば、最初から実行すると、次から次へではなく、最後のプロットが直接表示されることです。たとえば、これを試してみましたが、まったく機能しません。

pause(2); %After two seconds it starts and open the plot but I directly see the last plot, not this    
plot (x, y);
title ('Average values')
close; % The command close it works but only if I press 'evaluate function'

pause(2);
plot (out1,out2);
close;

また、キーボード コマンドを使用して、1 つのキーでプロットを閉じてから、別のキーでもう 1 つのキーを開くことができるかどうかを試してみましたが、できませんでした。

誰かが私がそれを行う方法を知っているなら、私はとても感謝しています.

4

2 に答える 2

1

Matlab は通常、プロットと計算を同じプロセスで行います。したがって、通常、プログラムでプロットするための空き時間ができるまで、何も表示されません。

matlab にウィンドウを強制的に再描画させるには、drawnowコマンドを使用できます。しかし、それはその瞬間だけを正確に描画するだけです。そのため、Figure ウィンドウが隠れていたり、他のウィンドウの背後にある場合、フォアグラウンドになったときの再描画は次回まで発生しません。

あなたの場合、一時停止の前にプロットを閉じます(表示できる場所)。したがって、2 つのコマンドを交換すると、それが表示されるはずです。一時停止の明らかな欠点は、プログラムが一時的に停止することです。


私の経験から、プロットをグラフィック ファイルとして保存し、外部プログラムを使用して表示することをお勧めします。また、新しいウィンドウがポップアップするのが煩わしく、ワークフローを中断していることがわかりますclf

于 2012-10-15T10:09:46.437 に答える
0

あなたがやろうとしていることを誤解しているかもしれませんが、あなたが説明したものを作成しようとすると、期待どおりに機能します. これが私の例です:

開いている Figure ウィンドウを閉じて、Figure がバックグラウンドに留まるのではなく、確実にポップアップするようにすることに注意してください。

pause(2); % Wait 2 seconds before starting
plot(1:10); % Plot an upward line
title('up'); % Give it a title

pause(2); % Wait 2 seconds before showing the next plot
plot(10:-1:1); % Plot an downward line
title('down'); % Give it a title

それらをどのように使用したいかによっては、プロットを保存する方が良い解決策になる場合があります。

于 2012-10-15T11:44:13.000 に答える