matlab中的句柄等价于C语言中的指针。
句柄分很多种,函数句柄、图形句柄等等。
1.图形句柄
图形句柄就特指这个图形,例如:
h=plot(x,y)
那么h就相当于这个图形的句柄,设置该图形时,只需要set(h,....)即可。
2.函数句柄
matlab中函数调用分为直接调用和间接调用。
直接调用的问题如下:子函数只能被与其M文件同名的主函数或在M文件中的其它函数所调用,同时在一个文件夹中只能有一个主函数。
函数句柄实际上是提供了一种间接调用函数的方法。创建函数句柄需要使用到操作符@,对MATLAB库函数中提供的各种M文件中的函数和使用者自主编写的程序中的内部函数,也都可以创建函数句柄,从而可以通过函数句柄来实现对这些函数的间接调用。
创建函数句柄的一般句法格式为
Function_Handle=@Function_Filename;
比如定义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
说白了就是函数指针
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)