GUIでワークスペースの変数をプロット
Show older comments
お世話になります。
プッシュボタンによりワークスペースの時間付き構造体のデータラベルをリストボックスに読み込み、 リストボックスから選択したデータのプロットを描くGUIを作成しようとしています。
リストボックスに読み込むためfieldnames関数を使った所、時間付き構造体が未定義だとエラーが出ました。
エラーの回避方法が分からず、方法やサンプルがあればご教授頂けると幸いです。
1 Comment
問題が再現できていないのですが, 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 をアップデートするコマンドを追加します.
これでもうまくいかない場合,問題をこちらで再現できるよう,実行したコマンドとエラー原文を教えてください.
Answers (0)
Categories
Find more on Data Preprocessing in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!