matlab的函数句柄@
@的理解
作用是将一个函数封装成一个变量,使其能够像其它变量一样在程序的不同部分传递
类似C++的指针,即函数指针的调用。句柄分为多种,如函数柄,对象柄,图形柄等。
函数句柄的创建:
-
直接加@
语法:@函数名fun1 = @sin;
fun1=@sin; -
str2func函数
语法:str2fun(‘函数名’)
fun2 = str2func(‘cos’); -
str2func函数
语法:@(参数列表)单行表达式
fun3 = @(x, y)x.^2 + y.^2;
函数句柄应用:函数句柄作为函数参数;利用函数句柄绘图;利用函数句柄滤波等
函数句柄的调用
假定一个函数的调用格式为:[y1,y2,…,yn] = FunctionName(x1,x2,…,xm)
该函数通过以下方式构建函数句柄:Hfunction = @FunctionName
则通过函数句柄实现函数运算的调用格式是:
直接调用 Hfunction (x1,x2,…,xm)
或者 [y1,y2,…,yn]=feval (Hfunction,x1,x2,…,xm)
图形句柄和图形之间是一种一一对应关系,简单的说图形句柄就是指向了这个图形的一个变量,通过它可以设定该图形的各种属性。图形句柄就指一个图形,在生成图形时同时得到一代号,如语句 h=plot(x,y),h 就是一个图形句柄,在后来的某一个地方就可用h代表这个图,如 set(h,…),对这个图形进行再设置。