Matlab/C プログラミングTIPS Matlab/C Programing TIPS |
Home |
Matlab測位プログラミングの基礎とGT
Matlab programing for positioning and GT
2007年度東京海洋大ゼミ資料
・その(1) (ppt 33KB)
・その(2) (ppt 37KB) 6/20追加
・その(3) (ppt 65KB) 6/20追加
Matlab小物ツール
moveax.m ver.1.0 (2006/10/13)
グラフ軸へ移動/拡大/縮小機能を追加します。本プログラムを実行すると、current
axesのXY軸上の左ボタンドラッグで軸移動、右ボタンドラッグ(またはコントロールーキー+ドラッグ)で軸の拡大/縮小が可能となります。axesハンドル
h を指定する場合は moveax(h) の構文を使用して下さい。
本頁に記載のプログラムは全てフリーです。コピー、改変、配布等自由に行ってかまいません。
MatlabプログラムTIPS
1. if文における比較判定
Matlabにおいて以下の文は等価ではないので、if文の判定を逆に書き換える場合、充分注意する必要がある。
if a==1, disp('OK'); else disp('NG'); end % (1)
if a~=1, disp('NG'); else disp('OK'); end % (2)
これはaが空や行列の場合があり、行列とスカラーの比較演算結果は行列になり、if文の判定は、空ではなく、かつ全要素が0以外にならないと真と見なされないからである。従って、
(1) NG, (2) OK (a=[])
(1) NG, (2) OK (a=[1,2;1,1])
の様にaが空や行列の場合、結果が異なる。またNaN==NaNは偽となるので以下も意味が異なる。従って普通は(4)を使わなければならない。
if a==nan, disp('NAN'); else disp('OK'); end % (3)
if isnan(a), disp('NAN'); else disp('OK'); end % (4)
さて、それでは(3),(4)で、a=[] の場合どういう結果になるだろう。予想してから実際実行してみると面白い。