[Matlab] @的使用

f=@(x)acos(x)这是什么意思?其中@代表什么? 

表示 f 为函数句柄(匿名函数),@是定义句柄的运算符。在Matlab中句柄可以理解为指针。

函数句柄(Function handle)是Matlab的一种数据类型,它包含了函数的路径、函数名、类型以及可能存在的重载方法;

引入函数句柄是为了使feval及借助于它的泛函指令工作更可靠;使“函数调用”像“变量调用”一样方便灵活;提高函数调用速度,特别在反复调用情况下更显效率;提高软件重用性,扩大子函数和私用函数的可调用范围;迅速获得同名重载函数的位置、类型信息。

       ①提高运行速度(理解为指针就很好懂了)。因为matlab对函数的调用每次都是要搜索所有的路径,从set path中我们可以看到,路径是非常的多的,所以如果一个函数在你的程序中需要经常用到的话,使用函数句柄,对你的速度会有提高的。

       ②使用可以与变量一样方便。比如说,我再这个目录运行后,创建了本目录的一个函数句柄,当我转到其他的目录下的时候,创建的函数句柄还是可以直接调用的,而不需要把那个函数文件拷贝过来。因为你创建的function handles中,已经包含了路径。


如定义 f=@(x)acos(x) 相当于建立了一个函数文件:

% f.mfunction  

y=f(x)

y=acos(x);

所以,如果你定义了f= @(x)acos(x),则可以在命令窗口中输入如f(2)来得到函数值,更一般的调用是使用feval函数来得到函数值,如

rusult = feval(f,2) 

 

详细可以参见:http://blog.csdn.net/kevinhg/article/details/8861774 

      http://www.cnblogs.com/begtostudy/archive/2012/06/27/2565920.html

转载于:https://www.cnblogs.com/jhsx/p/4601484.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值