MATLABアプリで​座標軸のラベルをアプ​リ実行後に入力する

MATLABアプリの座標軸コンポーネントについて質問です。
座標軸のラベル(x、y軸)は、アプリとして起動後に変更することは可能でしょうか。
(アプリ起動後にユーザの任意のラベルに変える)
素人意見で恐縮ですが、ご教示の程よろしくお願い申し上げます。

 Accepted Answer

Toru Ikegami
Toru Ikegami on 26 Aug 2021

1 vote

こんにちは,
座標軸ラベルをアプリ起動後に変更することは可能です.可能ですが,座標軸オブジェクト(app.UIAxes)のプロパティ(app.UIAxes.XLabel.String もしくは app.UIAxes.YLabel.String )を変更する仕組みをプログラムする必要があります.
やりかたは色々あるでしょうが,直観的で手っ取り早いのは,UIContextMenu を使用することでしょうか.大雑把な手順は次のようになります.
  1. コンポーネントライブラリの「FIGUREツール」のセクションから「コンテキストメニュー」を選んで,UIAxesの上にDrag & Drop.
  2. コンテキストメニューを編集(下の例では,X軸ラベル,Y軸ラベル の二つを設定しています)
  3. コンポーネントブラウザで,作際されたメニューを選択
  4. 「コールバック」から <MenuSelectedFcnコールバックの追加>を選んでコールバックを追加し中味を記述(下記コード参照)
  5. もう一つのメニューについても3.4.を実行
以上の手順で,UIAxes上でマウスを右クリックすると軸ラベル変更用のダイアログが出てきて変更が出来るようになります.ご参考までに,上を実装したアプリファイルを添付しておきますね.
% Menu selected function: XMenu
function XMenuSelected(app, event)
labelStr = inputdlg("X軸ラベルを入力してください","X軸ラベル");
app.UIAxes.XLabel.String = labelStr;
end

4 Comments

RK
RK on 26 Aug 2021
ご回答頂きありがとうございます。
プログラムを作成しようと思います。
取り急ぎ、添付いただいたファイルを確認しましたが、右クリックしてもダイアログが出てきません。
なにか操作が違うのでしょうか?
また、2019bを使用していますが、版数が違うと何か変わりますか?
よろしくお願いいたします。
RK
RK on 26 Aug 2021
度々すみません。
確認したところ、コンポーネントライブラリのFIGUREツール内に、
コンテキストメニューがありませんでした。。
これは追加が必要ですか?
Toru Ikegami
Toru Ikegami on 26 Aug 2021
こんにちは,
AppDesigner上で uicontextmenu を構成出来るのようになったのは R2020a からでした.
uicontextmenu の代わりに uimenu (コンポーネントライブラリの「メニューバー」)を使っても同様のことが出来ます.こちらも添付しておきますので見てみてください.
RK
RK on 26 Aug 2021
早急にご対応頂きありがとうございます。
R2020aからとのこと承知いたしました。
添付いただいたファイルで、同様のことが出来るのを確認いたしました。
R2020aがインストール出来た際はコンテキストメニューも使ってみようと思います。

Sign in to comment.

More Answers (0)

Products

Release

R2019b

Asked:

RK
on 25 Aug 2021

Commented:

RK
on 26 Aug 2021

Community Treasure Hunt

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

Start Hunting!