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 |
![]() |
簡単な関数ハンドル | 関数名の最大長 | ![]() |