matlab中函数的句柄是什么意思?有什么作用?最好举个例子说明!不胜感激!


这样写有什么用?这不是故找麻烦吗?

比如定义f(x)=x^2,可以写为
f=@(x)(x.^2)
其中@(x)(x.^2)就是匿名函数,第一个括号里面是自变量,第二个括号里面是表达式,@是函数指针
f=@(x)(x.^2)表示将匿名函数@(x)(x.^2)赋值给f,于是f就表示该函数。
于是f(2)=2.^2=4;f(1:3)=[1:3].^2=[1 4 9]等等

定义匿名函数时也可以调用别的匿名函数,比如
f1=@(x,y)(x.^2+y.^2)
定义了函数x^2+y^2
f2=@(t)(f1(t,2))
定义了函数t^2+4
f3=@(x)(f1(x(1),x(2)))
定义了函数x(1)^2+x(2)^2
使用匿名函数时一定要注意函数本身的参数形式,如
f1(2,3)
表示2^2+3^2
f2(3)=3
表示3^2+4
f3([1,2])
表示1^2+2^2
说白了就是函数指针

参考资料:引用greatdju 大哥的讲解

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-07-27

MATLAB中函数句柄:

函数句柄是MATLAB数据类型,包含用于引用函数信息;

优点:简化函数实现,提高重复性能;

用@来创建函数句柄;

详细的知识如下:

http://jingyan.baidu.com/article/154b46316062c128ca8f4121.html

第2个回答  2010-05-09
相当于C语言中的函数指针(入口地址),只不过句柄就用一个唯一的常整数来指出。
相似回答