関数定義の基本
Octave で関数を定義するには、function ~ end
の構文を使用します。
例えば、渡された数値の 2 乗を返す関数 myfunc
は下記のように定義できます。
戻り値は return
で指定するのではなく、関数値用に宣言した変数に代入することで表現することに注意してください。
上記の例では、関数値を表す変数は ret
という名前で定義していますが、任意の名前を付けることができます。
もちろん、関数を途中で抜けるときは return
を使用することができますが、その場合も戻り値はあらかじめ関数値用の変数に格納しておく必要があります。
戻り値を持たない関数を定義する
戻り値を持たない関数も同様に定義できます(関数というよりサブルーチンというのが正しいのかも)。 内部で出力処理まで終わらせてしまうような関数がこれにあたります。
function greet(name)
printf('Hello %s\n', name);
end
多値関数(複数の戻り値を持つ関数)を定義する
関数値としてベクトルを返すように定義すれば、複数の戻り値を持つ関数として扱うことができます。 下記の例では、除算結果の商と剰余を返す関数を定義しています。
パラメーターにデフォルト値(オプショナル引数)を設定する
パラメーター名の後にデフォルト値を指定しておくことができます。 パラメーターを省略して関数を呼び出した場合に、デフォルト値が使用されます。