Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

関数を別の関数に渡す

関数ハンドルを別の関数の入力引数として使用することができ、これは "関数を引数とする関数" と呼ばれます。これらの関数は、所定の値の範囲に対して数式を計算します。関数を引数とする関数として代表的なものには integralquad2dfzero および fminbnd があります。

たとえば、0 から 5 の自然対数の積分を求める場合、関数 log へのハンドルを integral へ渡します。

a = 0;
b = 5;
q1 = integral(@log,a,b)
q1 = 3.0472

同様に、関数 sin と関数 exp の積分を求めるには、それらの関数へのハンドルを integral へ渡します。

q2 = integral(@sin,a,b)
q2 = 0.7163
q3 = integral(@exp,a,b)
q3 = 147.4132

また、無名関数へのハンドルを、関数を引数とする関数に渡すこともできます。無名関数は、プログラム ファイルを必要としない 1 行で表現される MATLAB® 関数です。たとえば、[0,Inf] の範囲で x/(ex-1) の積分を評価します。

fun = @(x)x./(exp(x)-1);
q4 = integral(fun,0,Inf)
q4 = 1.6449

関数を入力として受け取る関数 ("関数を引数とする関数" と呼ばれる) は、関数ハンドルに関連付けられた関数にある一定数の入力引変数を求めます。たとえば、integral または fzero を呼び出す場合、関数ハンドルに関連付けられている関数には厳密に 1 つの入力変数がなければなりません。integral3 を呼び出す場合は、関数ハンドルに関連付けられている関数には 3 つの入力変数がなければなりません。より多くの変数をもつ "関数を引数とする関数" を呼び出す方法の詳細については、関数のパラメーター化を参照してください。

関連する例

詳細