ドキュメンテーション

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

function

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

構文

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

説明

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

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

ファイルには複数のローカル関数または入れ子関数を含めることができます。次に該当する場合、ファイル内の各関数の終わりを示すために end キーワードを使用します。

  • ファイル内のいずれかの関数が入れ子関数を含んでいる

  • ファイル内のいずれかのローカル関数が end キーワードを使用している

それ以外の場合は、end キーワードはオプションです。

すべて折りたたむ

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

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

関連する例

R2006a より前に導入

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