11.12.1 関数ハンドル
関数ハンドルは別の関数へのポインタであり、構文で定義されます。
@function-name
例えば、
f = @sin;
f関数 を参照する というsin関数ハンドルを作成します。
quad関数ハンドルは、他の関数を間接的に呼び出したり、や など の別の関数に関数を引数として渡したりするために使用されますfsolve。例:
f = @sin; quad (f, 0, pi) ⇒ 2
関数ハンドルを使用して関数を呼び出すにはfeval、関数ハンドルの名前に続けて引数リストを記述します。引数がない場合は、空の引数リストを使用する必要があります。()'。 例えば:
f = @sin; feval (f, pi/4) ⇒ 0.70711 f (pi/4) ⇒ 0.70711
: tf = is_function_handle (x)
xが関数ハンドルの 場合は true を返します。
See also: isa, typeinfo, class, functions.
: s = functions (fcn_handle)
関数ハンドル fcn_handleに関する情報を含む構造体を返します。
構造体s には常に次の 3 つのフィールドが含まれます。
function
数名。匿名関数 (名前なし) の場合、これが実際の関数定義になります。
type
関数のタイプ。
anonymous
この関数は匿名です。
private
この関数は非公開です。
overloaded
関数は既存の関数をオーバーロードします。
simple
この関数は組み込み関数または m ファイル関数です。
subfunction
この関数は、m ファイル内のサブ関数です。
nested
関数はネストされています。
file
関数を実行するために呼び出される m ファイル。匿名関数および組み込み関数の場合、このフィールドは空になります。
さらに、一部の関数タイプでは、追加のフィールドにさらに詳しい情報が返される場合があります。
Warning: functionsはデバッグ目的のみに提供されています。その動作は将来変更される可能性があり、プログラムは特定の出力形式に依存しないようにしてください。
See also: func2str, str2func.
: str = func2str (fcn_handle)
関数ハンドルfcn_handleによって参照される関数の名前を含む文字列を返します。
See also: str2func, functions.
: hfcn = str2func (str)
文字列strから構築された関数ハンドルを返します。
入力は、 などの関数の名前"sin"、または などの関数を定義する文字列になります"@(x) sin (x + pi)"。
プログラミング上の注意: ほとんどの場合、 を使用するよりも、匿名関数構文を使用して Octave パーサーに関数ハンドルを作成させる方が適切です str2func。例:
hfcn = @sin ; hfcn = @(x) sin (x + pi) ; See also: func2str, functions.
: vars = symvar (str)
文字列str内のシンボリック変数名を識別します。
i、、などの一般的な定数名やj、piまたはなどInfのオクターブ関数は無視されます。 sinplot
識別された名前は、文字列のセル配列で返されます。変数が見つからない場合、配列は空になります。
例:
symvar ("x^2 + y^2 == 4")
⇒ {
[1,1] = x
[2,1] = y
}