GUIでワークスペースの変数をプロット

お世話になります。
プッシュボタンによりワークスペースの時間付き構造体のデータラベルをリストボックスに読み込み、 リストボックスから選択したデータのプロットを描くGUIを作成しようとしています。
リストボックスに読み込むためfieldnames関数を使った所、時間付き構造体が未定義だとエラーが出ました。
エラーの回避方法が分からず、方法やサンプルがあればご教授頂けると幸いです。

1 Comment

mizuki
mizuki on 7 Mar 2017
Edited: mizuki on 7 Mar 2017
問題が再現できていないのですが, fieldnames 関数の入力引数は例えば以下の変数 wave のように構造体になっていますでしょうか.
t = 0.2 * [0:49]';
x = sin(t);
y = 10*sin(t);
wave.time = t;
wave.signals.values = [x,y];
wave.signals.dimensions = 2;
wave
wave =
フィールドをもつ struct:
time: [50×1 double]
signals: [1×1 struct]
class(wave) % クラスを確認
ans =
'struct'
もしこの出力が struct でない場合, fieldnames 関数の入力引数として構造体を入れる必要があります.また,wave の中に time, signals が存在しない場合,構造体の構成が予期せぬものである可能性があります.
他に原因として考えられる点として,GUIDE の場合,各関数 (OpeningFcn や pushbutton1_Callback など)間での変数受け渡しが通常の関数と異なるところがあります.その場合は以下の手順で変数受け渡しを行ってください.
1. 例えば変数 wave を
handles.wave
というように handles の下に定義します. 2. 関数の最後に
data(hObject, handles);
という,ハンドル handles をアップデートするコマンドを追加します.
これでもうまくいかない場合,問題をこちらで再現できるよう,実行したコマンドとエラー原文を教えてください.

Sign in to comment.

Answers (0)

Categories

Products

Asked:

on 7 Mar 2017

Edited:

on 7 Mar 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!