スクリプトと関数
このトピックではスクリプトと関数の違いおよびスクリプトを関数に変換する方法について説明します。
スクリプトと関数のどちらでも、コード ファイルに格納することでコマンドのシーケンスを再利用できます。スクリプトは最もシンプルなタイプのコード ファイルで、コマンド ラインで入力するとおりのコマンドを格納します。ただし、関数の方がより柔軟で簡単に拡張できます。
三角形の面積を求める triarea.m
というファイルに次のようなスクリプトを作成します。
b = 5; h = 3; a = 0.5*(b.*h)
ファイルの保存後、スクリプトをコマンド ラインから呼び出すことができます。
triarea
a = 7.5000
同じスクリプトを使って別の三角領域を計算するには、b
と h
の値をスクリプトで更新してスクリプトを再実行します。スクリプトを実行するたびに、結果がベース ワークスペースにある a
という変数に格納されます。
ただし、毎回スクリプトを手動で更新する代わりに、スクリプトを関数に変換してコードの柔軟性を向上できます。値を b
と h
に代入するステートメントを関数宣言ステートメントに置き換えます。宣言には、function
キーワード、入力および出力引数名、関数名が含まれます。
function a = triarea(b,h) a = 0.5*(b.*h); end
ファイルを保存したら、スクリプトを変更せずにコマンド ラインからさまざまな基準値と高さの値を指定して関数を呼び出せます。
a1 = triarea(1,5) a2 = triarea(2,10) a3 = triarea(3,6)
a1 = 2.5000 a2 = 10 a3 = 9
関数は、ベース ワークスペースとは別の、独自のワークスペースをもっています。そのため、関数 triarea
への呼び出しによってベース ワークスペースにある a
値が上書きされることはありません。その代わり、関数は結果を変数 a1
、a2
および a3
に割り当てます。