ひとかたまりのロジックを繰り返し使いたい場合に関数化すると便利。
!注意!
関数化する場合は、MATLABの検索パスが通っているディレクトリか、現在のディレクトリ(※)にファイルを作成するのだが、その際**「ファイル名」と「関数名」を同じ名称にする必要がある。**
(※:MATLABの左側にFileBrowserという小窓があると思うが、今まさに表示されているディレクトリの事。)
関数宣言のフォーマット
関数宣言のフォーマットは次のようになっている。
% 【case.0】返り値なし
function function_name(in0, in1, ...)
...;
・
・
・
% 【case.1】返り値一つ
function out0 = function_name(in0, in1, ...)
...;
・
・
・
% 【case.2】返り値が多値(複数)
function [out0, out1, ...] = function_name(in0, in1, ...)
...;
・
・
・
トークンの意味をご紹介。
項目 | 説明 |
---|---|
out0 , out1 , ...
|
返り値 |
function_name |
関数名。これをファイル名と合わせること。 |
in0 , in1 , ...
|
関数の引数。 |
関数を実装
では、今回は四則演算のすべての結果を返すという、いまいち使いどころが分からない関数を作ってみよう。
項目 | 説明 |
---|---|
add , sub , mul , div
|
add が加算、sub が減算、mul が乗算、div が除算の結果となる。 |
calc_4patterns |
関数名。これをファイル名と合わせること。 |
a , b
|
四則演算対象となる値。 |
まずは現在のディレクトリに、関数名と同じファイル名のmファイル「calc_4patterns.m」を作成する。
そのファイルの中に次のようなコードを記述する。
function [add, sub, mul, div] = calc_4patterns(a, b)
add = a + b;
sub = a - b;
mul = a * b;
div = a / b;
これで全ての準備は整った。Matlabのインタラクティブシェルからcalc_4patterns
関数を呼び出してみよう。
> %calc_4patterns関数を呼び出す。
> [a, s, m, d] = calc_4patterns(3, 4);
当然のことながら、返り値の変数名は関数定義と同じにする必要はなく、好きな名前を使っていい。
では、返り値の中身を確認してみよう。
> a
ans =
7
> s
ans =
-1
> m
ans =
12
> d
ans =
0.7500
>
ちゃんとそれぞれの四則演算ができている。