ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

function

関数名、入力および出力の宣言

構文

  • function [y1,...,yN] = myfun(x1,...,xM)

説明

function [y1,...,yN] = myfun(x1,...,xM) は、入力 x1,...,xM を受け入れ、出力 y1,...,yN を返す myfun という関数を宣言します。この宣言ステートメントは、関数の最初の実行可能行でなければなりません。

関数コードを拡張子 .m のテキスト ファイルに保存します。ファイルの名前は、ファイル内の最初の関数の名前に一致させる必要があります。有効な関数名は、アルファベットで始まり、文字、数字またはアンダースコアを含むことができます。

同じファイルで複数のローカル関数を宣言できます。つまり、これは入れ子関数です。ファイル内のいずれかの関数が入れ子関数を含む場合は、そのファイル内のすべての関数が end キーワードを使用して関数の終わりを示さなければなりません。それ以外の場合は、end キーワードはオプションです。

すべて展開する

出力が 1 つの関数

average.m というファイル内に、入力ベクトルを受け入れ、値の平均を計算し、単一の結果を返す関数を定義します。

function y = average(x)
if ~isvector(x)
    error('Input must be a vector')
end
y = sum(x)/length(x); 
end

コマンド ラインから関数を呼び出します。

z = 1:99;
average(z)
ans =
    50

出力が複数の関数

stat.m というファイル内に入力ベクトルの平均と標準偏差を返す関数を定義します。

function [m,s] = stat(x)
n = length(x);
m = sum(x)/n;
s = sqrt(sum((x-m).^2/n));
end

コマンド ラインから関数を呼び出します。

values = [12.7, 45.4, 98.9, 26.6, 53.1];
[ave,stdev] = stat(values)
ave =
   47.3400
stdev =
   29.4124

1 つのファイル内の複数の関数

stat2.m というファイル内に 2 つの関数を定義します。最初の関数が 2 番目の関数を呼び出します。

function [m,s] = stat2(x)
n = length(x);
m = avg(x,n);
s = sqrt(sum((x-m).^2/n));
end

function m = avg(x,n)
m = sum(x)/n;
end

関数 avg は "ローカル関数" です。ローカル関数は、同じファイル内の他の関数だけが使用できます。

コマンド ラインから関数 stat2 を呼び出します。

values = [12.7, 45.4, 98.9, 26.6, 53.1];
[ave,stdev] = stat2(values)
ave =
   47.3400
stdev =
   29.4124

参考

| | | | | | |

この情報は役に立ちましたか?