作业帮 > 综合 > 作业

matlab中f=@(x)[x(2);x(3);0.05*x(1)*(x(2)+x(3))]中@(x)什么意思

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 00:49:01
matlab中f=@(x)[x(2);x(3);0.05*x(1)*(x(2)+x(3))]中@(x)什么意思
函数句柄:是包含了函数的路径、函数名、类型以及可能存在的重载方法.
函数句柄必须通过专门的定义创建的,而一般的图像的句柄是自动建立的.
创建函数句柄使用@或者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、使用可以与变量一样方便.比如说,我再这个目录运行后,创建了本目录的一个函数句柄,当我转到其他的目录下的时候,创建的函数句柄还是可以直接调用的,而不需要把那个函数文件拷贝过来.因为你创建的function handles中,已经包含了路径,比如说我创建了一个fun
h_fun=str2func('rei');
可以用functions来查看这个function,结果果然已经包括了路径.
functions(h_fun)
ans =
function:'rei'
type:'simple'
file:'G:\program\serial232\rei.m