matlab 函数句柄@的介绍_什么是函数句柄觉得自己很少用函数句柄,但是经常遇到,所以在这里总结一下。
函数句柄:是包含了函数的路径、函数名、类型以及可能存在的重载方法。 函数句柄必须通过专门的定义创建的,而一般的图像的句柄是自动建立的。 创建函数句柄使用@或者str2func命令创建 [email=h_fun=@fun]h_fun=@fun[/email]; h_fun=str2func('fun'); 比如说sin函数,[email=h_sin=@sin]h_sin=@sin[/email]; h_sin=str2func('sin'); 执行sin函数 feval feval('sin',pi/2) ans = 1 那么使用函数句柄有什么好处呢? 1、提高运行速度。因为matlab对函数的调用每次都是要搜索所有的路径,从set path中我们可以看到,路径是非常的多的,所以如果一个函数在你的程序中需要经常用到的话,使用函数句柄,对你的速度会有提高的。 2、使用可以与变量一样方便。比如说,我再这个目录运行后,创建了本目录的一个函数句柄,当我转到其他的目录下的时候,创建的函数句柄还是可以直接调用的,而不需要把那个函数文件拷贝过来。因为你创建的functionhandles中,已经包含了路径,比如说我创建了一个fun h_fun=str2func('rei'); 可以用functions来查看这个function,结果果然已经包括了路径。 functions(h_fun) ans = function: 'rei' type: 'simple' file: 'G:\program\serial232\rei.m' |
|