| Programming and Data Types |
関数ハンドルの構築
関数の前に、符号@を使って、MATLABの中に関数ハンドルを作成します。つぎの例題は、関数humpsに対する関数ハンドルを作成し、それを変数fhandleに割り当てるものです。
fhandle = @humps;
ユーザが渡したい引数を同じ方法で他の関数にハンドルを渡します。つぎの例題は、ちょうど作成した関数ハンドルをfminbndに渡して、区間[0.3,
1]で最小化するものです。
x = fminbnd(fhandle, 0.3, 1)
x =
0.6370
関数fminbnd は、fevalを使って、関数ハンドル@humpsを計算するものです。M-ファイルfminbndの一部を、つぎに示します。ライン1で、入力funfcnパラメータは、渡される関数ハンドル@humpsを受け取ります。ステートメントfevalのライン113は、ハンドルを計算します。
1 function [xf,fval,exitflag,output] = ...
fminbnd(funfcn,ax,bx,options,varargin)
.
.
.
113 fx = feval(funfcn,x,varargin{:});
注意
関数ハンドルを作成すると、符号@を前に付けた関数name
を使用するだけです。これは、任意のパス情報を含んでいるものではありません。つぎのシンタックスは、正しくありません。
fhandle = @\home\user4\humps |
| 簡単な関数ハンドル | 関数名の最大長 |