Matlab App Designerでド​ロップダウンリストで​選択された項目に関し​てユーザーからの入力​値をもとに計算を行い​グラフを表示したい

3 次查看(过去 30 天)
Yuto Tahara
Yuto Tahara 2021-11-23
评论: Yuto Tahara 2021-11-24
ドロップダウンリストを使って選択された信号発生器の波形を表示するプログラミングを作りたいです。ユーザーはドロップダウンリストで信号発生器を選択して周波数を入力することで波形が表示されるようにしたいんですが、その場合波形を求める式と波形を表示するためのプログラミングはドロップダウンリストのプログラミングの中でswitch, caseを使って一緒に書き込めばいいんでしょうか?それともドロップダウンリスト、式、波形を表示するためのプログラミングは通常通り別々に書いても大丈夫なんでしょうか?下の写真はドロップダウンリストのプログラミングのところにswitch, caseを使って式だけを書き込んだものですが、関数fが定義されていませんと表示されてしまいました。これは先にドロップダウンリストを配置して周波数を入力する欄を後で配置したためなんでしょうか?

采纳的回答

Atsushi Ueno
Atsushi Ueno 2021-11-23
>波形を求める式と波形を表示するためのプログラミングはドロップダウンリストのプログラミングの中でswitch, caseを使って一緒に書き込めばいいんでしょうか?それともドロップダウンリスト、式、波形を表示するためのプログラミングは通常通り別々に書いても大丈夫なんでしょうか?
前者の様に一緒に書き込んでも動きますが、後者の方が良いと思います。プログラムは細かく「部品」に分けるのが良い習慣です。質問の内容で言うと「グラフはドロップダウンリストを変えた時だけ表示するか、プッシュボタンを押した時だけ表示するか、両方とも表示するか」を簡単に変更する為には「操作系の受付処理」と「波形を表示する処理」は異なる関数(メソッド)に分けて書くべきです。その方が下記の様なメリットが多いです。
  • App Designerが提供するコールバック関数を適宜使う
  • インターフェースの変更に対し柔軟に対応できる様にする
  • デバッグ時、どこに問題があるか分かり易くなる など
>これは先にドロップダウンリストを配置して周波数を入力する欄を後で配置したためなんでしょうか?
いいえ。コンポーネントを配置する順番は関係ありません。
「関数fが定義されていません」と表示されたのは、"f"を書いた所から"f"の定義が参照出来ないからです。多分スライダーのコールバック関数内でスライダーの位置を"f"として定義したと想定しますが、その場合同関数の処理が終了した時点で"f"は捨てられてしまい、SignalGeneratorDropDownValueChanged(app,event)関数が実行される事には"f"は存在しないのです。
  1 个评论
Yuto Tahara
Yuto Tahara 2021-11-24
コメントとサンプルありがとうございます。これをもとにやってみます。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 プロットのカスタマイズ 的更多信息

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!