11.12.1函数句柄

函数句柄是指向另一个函数的指针,从语法定义

@函数名称

例如

f=@sin;

创建一个名为的函数句柄f指的是函数.

函数句柄用于间接调用其他函数,或将函数作为参数传递给另一个函数,如quad数值解例如

f=@sin;quad(f,0,pi)⇒ 2.

您可以使用发烧要使用函数句柄调用函数,请在后面写上函数句柄的名称和参数列表。如果没有参数,则必须使用空的参数列表()’. 例如

f=@sin;feval(f,pi/4)⇒ 0.70711f(π/4)⇒ 0.70711
 
: tf = is_function_handle (x)

如果返回truex是一个函数句柄。

详见: isa, 类型信息, , 函数.

 
: s = functions (fcn_handle)

返回一个包含有关函数句柄信息的结构体fcn_handle.

结构体s始终包含以下三个字段:

作用

函数名称。对于匿名函数(无名称),这将是实际的函数定义。

类型

函数的类型。

匿名的

该函数是匿名的。

私有的

该函数是私有的。

重载

该函数重载现有函数。

易于理解的

该函数是一个内置函数或m-file函数。

子函数

该函数是m文件中的一个子函数。

嵌套的

函数是嵌套的。

文件

将被调用以执行该函数的m文件。对于匿名函数和内置函数,此字段为空。

此外,某些函数类型可能会在其他字段中返回更多信息。

警告 函数仅用于调试目的。它的行为可能会在未来发生变化,程序不应该依赖于任何特定的输出格式。

详见: 函数2str, str2func.

 
: str = func2str (fcn_handle)

返回一个字符串,该字符串包含functionhandle引用的函数的名称fcn_handle.

详见: str2func, 函数.

 
: hfcn = str2func (str)

返回从字符串构造的函数句柄str.

输入可以是函数的名称,例如或定义函数的字符串,例如@(x)sin(x+pi).

编程注意事项:在大多数情况下,最好使用匿名函数语法,并让Octave解析器创建函数句柄,而不是使用str2func例如

hfcn=@sin;hfcn=@(x)sin(x+pi);

详见: 函数2str, 函数.

 
: vars = symvar (str)

识别字符串中的符号变量名str.

常见常量名称,如, j, 圆周率, Inf和Octave函数,如plot被忽略。

所标识的任何名称都将在字符串的元胞数组中返回。如果未找到变量,则数组为空。

用例

symvar(“x^2+y^2==4”)⇒ {[1,1]=x[2,1]=y}

版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号