函数句柄

来源:互联网 发布:tensorflow mnist 例子 编辑:程序博客网 时间:2024/06/05 06:50

函数句柄(Function handle)是MATLAB的一种数据类型。引入函数句柄是为了使feval及借助于它的泛函指令工作更可靠;使“函数调用”像“变量调用”一样方便灵活;提高函数调用速度,特别在反复调用情况下更显效率;提高软件重用性,扩大子函数和私用函数的可调用范围;迅速获得同名重载函数的位置、类型信息。
MATLAB中函数句柄的使用使得函数也可以成为输入变量,并且能很方便的调用,提高函数的可用性和独立性。
定义函数句柄只需在提示符@后添加相应函数的函数名,函数句柄的内容通过functions显示
eg: f_h=@plot
functions(f_h)
ans=function:’plot’
type:’overloaded’
file:’MATLAB built-in function’
methods:[1*1 struct]
可通过函数feval进行函数句柄的调用,
1)feval(函数句柄)
f_h1=@peaks
feval(f_h1)
2)feval(函数句柄,参数列表)
f_h=@plot
feval(f_h,0:10,0:10)
函数句柄与函数名字符串转换:
func2str—函数名字符串转换函数句柄
str2func–函数句柄转换函数名字符串
funh=str2func(‘det’)
ans=funh=@det
func2str(funh)
ans=det

0 0