| Mathematics | ![]() |
MATLABの中の関数表現
MATLAB は、M-ファイル、または、インラインオブジェクトの中に、MATLAB関数として、数学関数を表現することができます。
MATLAB 関数として
上に記述した関数を、M-ファイルhumps.mで見ることができます。
function y = humps(x) y = 1./((x - 0.3).^2 + 0.01) + 1./((x - 0.9).^2 + 0.04) - 6;
この関数humps を2.0で計算するには、@を使って、humpsに対する関数ハンドルを得て、それを、fevalに渡します。
fh = @humps; feval(fh,2.0) ans = -4.8552
インラインオブジェクトとして
コマンドラインで、数学関数を表す2番目の方法は、文字列表現からインラインオブジェクトを作成するものです。たとえば、humps関数のインラインオブジェクトを作成することができます。
f = inline(`1./((x-0.3).^2 + 0.01) + 1./((x-0.9).^2 + 0.04)-6');
f(2.0) ans = -4.8552
文字表現法に従って、入力引数名を設定することにより、inlinewp使って、複数の引数をもつ関数を作成することもできます。たとえば、つぎの関数は、2つの入力引数x と yを使います。
f= inline('y*sin(x)+x*cos(y)','x','y')
f(pi,2*pi)
ans =
3.1416
この章で記述するすべての関数は、入力引数として、humpsのような関数への関数ハンドル、または、数学関数を定義するインラインオブジェクトのどちらかを使うことができるので、関数を引数とする関数と呼ばれます。
注意
関数ハンドルに関する情報は、リファレンスページのfunction_handle (@), func2str, str2func を参照してください。また、MATLABのドキュメントの"プログラミングとデータタイプ"の関数ハンドル の節を参照してください。
|
| 関数のまとめ | 数学関数のプロット | ![]() |