Graphics | ![]() ![]() |
M-ファイル内のハンドルのセーブ
グラフィックスM-ファイルは、多くの場合ハンドル番号を使ってプロパティ値にアクセスし、グラフィックス出力を特定のターゲットに向けます。MATLABは、キーオブジェクト(カレントFigureやAxesなど)に対するハンドル番号を出力するユーティリティルーチンを提供します。しかし、M-ファイルでは、これらのユーティリティは、つぎの理由からハンドル番号を求める最善の方法ではない場合もあります。
情報の保存
M-ファイルの最初の部分でMATLABの状態に関する関連情報を保存することは得策です。たとえば、ある情報を必要とするたびに照会する代わりに、つぎのようにM-ファイルを書き始めることができます。
cax = newplot; cfig = get(cax,'Parent'); hold_state = ishold;
ishold
のようなユーティリティコマンドは、呼び出されるたびに出力する値を取得するという点に注意してください(ishold
コマンドは、いくつかのget
コマンドを発行し、ホールド状態を決定するために文字列比較(strcmp
)を行います)。
M-ファイル内で一時的にホールド状態を変更する場合、NextPlot
プロパティの現在の値を保存してそれらを後でリセットすることができるようにします。
ax_nextplot = lower(get(cax,'NextPlot')); fig_nextplot = lower(get(cfig,'NextPlot')); . . . set(cax,'NextPlot',ax_nextplot) set(cfig,'NextPlot',fig_nextplot)
![]() | ハンドルの有効性と可視性 | 組み込み関数で変更される特性 | ![]() |