Matlab App Designerでドロップダウンリストで選択された項目に関してユーザーからの入力値をもとに計算を行いグラフを表示したい
4 views (last 30 days)
Show older comments
ドロップダウンリストを使って選択された信号発生器の波形を表示するプログラミングを作りたいです。ユーザーはドロップダウンリストで信号発生器を選択して周波数を入力することで波形が表示されるようにしたいんですが、その場合波形を求める式と波形を表示するためのプログラミングはドロップダウンリストのプログラミングの中でswitch, caseを使って一緒に書き込めばいいんでしょうか?それともドロップダウンリスト、式、波形を表示するためのプログラミングは通常通り別々に書いても大丈夫なんでしょうか?下の写真はドロップダウンリストのプログラミングのところにswitch, caseを使って式だけを書き込んだものですが、関数fが定義されていませんと表示されてしまいました。これは先にドロップダウンリストを配置して周波数を入力する欄を後で配置したためなんでしょうか?
Accepted Answer
Atsushi Ueno
on 23 Nov 2021
>波形を求める式と波形を表示するためのプログラミングはドロップダウンリストのプログラミングの中でswitch, caseを使って一緒に書き込めばいいんでしょうか?それともドロップダウンリスト、式、波形を表示するためのプログラミングは通常通り別々に書いても大丈夫なんでしょうか?
前者の様に一緒に書き込んでも動きますが、後者の方が良いと思います。プログラムは細かく「部品」に分けるのが良い習慣です。質問の内容で言うと「グラフはドロップダウンリストを変えた時だけ表示するか、プッシュボタンを押した時だけ表示するか、両方とも表示するか」を簡単に変更する為には「操作系の受付処理」と「波形を表示する処理」は異なる関数(メソッド)に分けて書くべきです。その方が下記の様なメリットが多いです。
- App Designerが提供するコールバック関数を適宜使う
- インターフェースの変更に対し柔軟に対応できる様にする
- デバッグ時、どこに問題があるか分かり易くなる など
>これは先にドロップダウンリストを配置して周波数を入力する欄を後で配置したためなんでしょうか?
いいえ。コンポーネントを配置する順番は関係ありません。
「関数fが定義されていません」と表示されたのは、"f"を書いた所から"f"の定義が参照出来ないからです。多分スライダーのコールバック関数内でスライダーの位置を"f"として定義したと想定しますが、その場合同関数の処理が終了した時点で"f"は捨てられてしまい、SignalGeneratorDropDownValueChanged(app,event)関数が実行される事には"f"は存在しないのです。
More Answers (0)
See Also
Categories
Find more on プロットのカスタマイズ in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!