無線通信エンジニアの備忘録

無線通信だったり、ITだったり、仕事で覚えた専門知識の備忘録

MATLABのAppDesignerでGUIアプリを作る (5)座標軸

こんにちは。

今回もAppDesignerの基本的な使い方を抑えるための備忘録です。

第4回の前回は「スライダー」の使い方を解説しました。
taekwongineer.hatenablog.jp


今まで年1回更新するかしないかだったのによくここまで続いているなと思います(;^_^A

さて、第5回の今回は


座標軸



です。

GUIアプリを使ってグラフとか描けるとだんだん面白くなってきますね♪

では早速行きましょう。
(今回の記事もほぼ過去の使いまわしですがご容赦ください(;^_^A)

●この記事の目次

1.GUI部品の配置

いつもと同様、まずはAppDesignerを起動し、空のWindow画面に座標軸のGUI部品をドラッグ&ドロップで配置します。
今回は動作確認用に前回解説したスライダーも使用します。(図1)



図1 座標軸部品の配置

2.とにかくまずはグラフを描いてみる

座標軸の細かい設定とかはとりあえず置いといて、まずは座標軸上にグラフを描いてみることにします。

スライダーのValueChangingFcnのコールバック関数を追加し、スライダーの値が振幅となるSIN関数を描くこととします。(図2)



図2 コールバック関数にSIN関数の波形描画のコードを追記

コールバック関数を記述したら早速動かしてみましょう!
youtu.be

スライダーの値に応じてSIN関数の振幅が変わるグラフの描画を確認できました。


3.座標軸の表示範囲を固定する

先ほどのグラフでは、SIN関数の振幅の大きさに応じてY軸の表示範囲が変わってしまいました。X軸もアプリ起動時は0~1の範囲の表示でしたが、グラフの表示後は0~10に変わっていました。

今度は座標軸の表示範囲を固定してみます。

座標軸の表示範囲を固定するには、座標軸のルーラーのプロパティにて、XLimMode、YLimModeの値をautoからmanualに変更します。
また、座標軸の表示範囲を変更するには、XLim、YLimに表示範囲を最小値、最大値をそれぞれ入力します。(図3)



図3 ルーラーのプロパティの修正

修正が完了したらまた動かしてみましょう。
youtu.be

SIN関数の振幅が変化しても、Y軸の表示範囲が変化せずに固定されるようになりましたね。

4.座標軸の目盛表示を変更する。

これまでの例では、X軸、Y軸の値の範囲は指定しましたが、目盛の間隔は自動設定となっていました。
今度は目盛の間隔や表示方法についても変更していきたいと思います。

今回はX軸の目盛の表示を

0, 2, 4, 6, 8, 10

から

0, π/2, π, 3π/2, 2π, 5π/2, 3π

に変更します。

X軸の目盛を修正するには、座標軸のXTickのプロパティを変更します。(図4)

0 : π/2 : 3π

と入力すると簡単です。



図4 XTickの値の変更


入力が完了すると、X軸の目盛の表示が図5のようになります。



図5 XTickの値変更後のX軸の表示


うん・・・
間違ってはいないですが、小数値で表示されるのはあまり美しくないですね・・・


今度はこれを文字式πを使った形式に書き換えていきたいと思います。

目盛の値の表示方法を指定するには図7のように、XTickLabelModeをmanualにし、XTickLabelに

0, π/2, π, 3π/2, 2π, 5π/2, 3π

と1つずつ値を手入力していきます。
(ここでは0 : π/2 : 3πのような簡易入力はできません・・・(;^_^A)

入力が完了すると、X軸の目盛の値の表示が小数からπを使った文字式の形式に変化します。



図7 XTickLabelとXTickLabelModeの変更

こちらもせっかくなので動かしてみましょう。
(目盛の位置でSIN関数の値が-1、0、+1となるようにスライダーのコールバック関数の式を少しいじりました。)
youtu.be

5.まとめ

今回は「座標軸」の使い方について触れました。

1個1個のGUI部品の使い方について説明するのは今回までとし、次回以降は少し応用を効かせた使い方について書こうかなと思います。