2011-09-15 4 views
1

私は現在、古いMatlabコード(pre new-oop Matlab)をリファクタリングしています.GUIコードは混乱しています。複数の人物が同じデータにアクセスするための適切なスタイルは何ですか?

GUIは基本的には別々のMatlab図形の束であり、それぞれが同じデータを別の方法で表示する必要があります。

古いコードは、グローバル構造体を使用してメタデータ(現在のデータをグラフ化するのに必要なサイズに関する情報)とともに表示されるすべてのデータを保持することでこの問題を処理します。

私の質問は、これが現行バージョンのMatlabでこれを行うための適切な方法であるかどうかです。私はデータをハンドルクラスとメタデータに別々に束ねてGUIのすべての図に渡すことを考えましたが、追加された引数の混乱を招くほど価値があるかどうかは分かりません。

Matlab GUIプログラミングでこのような決定を行うための一般的なスタイルルールはありますか?

答えて

3

これを行うにはいくつかの方法があります。あなたは、個々の数字を使用してデータを関連付けるためにgetappdatasetappdataを使用することができます。

%# Associate some data to the main figure handle... 
setappdata(main_FH, 'myData', data); 

%# Retrieve that data from the main figure handle 
myData = getappdata(main_FH, 'myData'); 

%# check if some app data exists for main_FH 
validAppData = isappdata(main_FH, 'myData'); 

すべてのハンドルのための唯一のUserDataプロパティがありますが、あなたはまた、set(FH, 'UserData', myData)(とあまりにもget())を使用することができます。それを構造体に設定してisappdata()ではなくisfield()を使用して、myDataのフィールドが存在するかどうかを調べることができます。

最後に、guidataがありますが、これは基本的にGUIDE GUI用の___appdataのラッパーです。

The MathWorks websiteにこのようなデータを渡す方法の概要があります。

関連する問題