2009-06-17 4 views
1

私はmatlabタイマーオブジェクトを持っています。 1秒に1回グローバル変数FOOを更新しています。matlabのGUIDE GUIを更新するmatlabタイマーを取得しますか?

私は、いくつかのコントロールと1つのプロットフレームで、MATLAB GUIDE GUIを持っています。プロットフレームは、いくつかのGUIコントロールによって更新され、タイマーオブジェクトによって更新されます。

基本的に、グローバル変数FOOとBARは2つあります。タイマーはFOOを更新し、GUIコントロールはBARを更新します。 FOOまたはBARのいずれかの更新でGUIを更新する必要があります。

これを行う方法?

おかげ ジョン

答えて

3

あなたは変数に時計を置くことはできません。そのためのコールバックはありません。しかし、FOOとBARの両方のいずれかによって更新されています:


FOOをtimerFcnによって

BARあなたが機能を確認する必要があり


ウィジェットのコールバックによって:

updatePlot% FOOまたはBARの新しい値を反映するようにプロットを更新する

FOOまたはBARを更新する関数は、updatePlotを最後の任務の1つとして呼び出します。

グローバル変数を使用することも推奨します。これを行うより良い方法があります。私はGETAPPDATAとSETAPPDATAのファンです。私が作ったこのビデオを見てください。

http://blogs.mathworks.com/videos/2005/10/03/guide-video-part-two/

また、ネストされた関数を試みることができます。

+0

私の現在の場所からviedoesを見ることができません。詳細や明示的な例が最も役立ちます。 – John

+0

私はあなたの言うことを正確にしようとしましたが、私の "updatePlot"関数が呼び出されるたびに、新しいPlotオブジェクトが作成されます。これはFOOのようなもので、BARはさまざまなコンテキストでのrfunningです。 – John

+1

@John: "updatePlot"の中で何をしていますか? SETコマンドを使用して既存のグラフィックスオブジェクトの値を変更していますか、またはそれらのオブジェクトを再配置していますか?例えば、あなたは* "plot(...)"を呼ぶべきではなく、代わりに "set(hPlot、...)"を呼び出すべきです。ここで "hPlot"はPLOT関数から返されるプロットオブジェクトのハンドルです。 – gnovice