2017-10-04 1 views
0

MATLABがGUIフィーチャーを表示しないようにするにはどうすればいいですか?f 2軸でデータをプロットするとき。MATLABで図形が連続的に表示されないようにする

f=figure; 

ax.h1 = axes('Parent',f,'Position',[0.1 0.1 0.8 0.35],'Units','normalized'); 
ax.h2 = axes('Parent',f,'Position',[0.1 0.6 0.8 0.35],'Units','normalized'); 

for j=1:20 
    axes(ax.h1) 
    hold on 
    plot(1:3,(1:3)+j) 

    axes(ax.h2) 
    hold on 
    plot(1:3,(1:3)+1+j) 

    pause(2) 

end 

は、私は数時間のプロットデータを保持する必要があります。 はここに簡単な例です。したがって、新しいプロットが生成されるたびにMATLABがポップアップしなかった場合は素晴らしいでしょう。

ありがとうございます!

+2

は数字が見えなく...しかし、より良いアプローチは、それは準備ができた後、一度にすべてをプロットし、その後、データを格納することです。 –

+2

私は間違っているかもしれませんが、あなたがそれらを "ポップアップ"させる理由は、特定の軸が表示されて最前線に運ばれるという副作用を持つ "axes"コマンドを呼び出すためだと思います。その軸に単にプロットしたいのであれば、 'plot'コマンド、' plot(ax.h1、bla bla bla')から直接行うことができます。 –

+0

@ Dev-iL。これはGUIの図で、いくつかのボタンがあります。だから、私はデータを見続けたいと思っています。私の姿を見えなくすると、私のGUIは見えなくなり、それは起こり得ません。私がプロットせずにデータを保存し続けると、何が起こっているのかを追跡できません。 – hello123

答えて

2

@TasosPapastylianouが指摘したように、axisコールはウィンドウを前面に持ってきています。ループ内でaxishold onコールを削除し、plot(ax.h1, ...を使用して特定の軸にプロットします。軸ごとにhold onを1回だけ呼び出す必要があります。開始時にhold(ax.h1, 'on')などを使用してこれを実行してください。その後、毎回前面に来ることなくグラフをバックグラウンドで更新し続ける必要があります。

あなたの例は次のようになります。

f=figure; 

ax.h1 = axes('Parent',f,'Position',[0.1 0.1 0.8 0.35],'Units','normalized'); 
ax.h2 = axes('Parent',f,'Position',[0.1 0.6 0.8 0.35],'Units','normalized'); 
hold(ax.h1, 'on') 
hold(ax.h2, 'on') 

for j=1:20 
    plot(ax.h1, 1:3,(1:3)+j) 
    plot(ax.h2, 1:3,(1:3)+1+j) 

    pause(2) 

end 
関連する問題