之前一直没怎么使用过Matlab,所以一开始直接看了代码有些晕。
而句柄有属于Matlab跟其他编程语言较为不一样的数据类型。
所以记录下
1 什么是函数句柄
函数句柄是MATLAB中的一种常见的数据类型,地位类似于其它计算机语言里的函数对象(Java script ,Python),函数指针(C++),或者函数引用(Perl)。
作用是将一个函数封装成一个变量,使其能够像其它变量一样在程序的不同部分传递。
MATLAB中函数句柄的使用使得函数也可以成为输入变量,并且能很方便地调用,提高函数的可用性和独立性。
2 函数句柄的创建
- 直接加@
@函数名
%直接加
TestFun2 = @cos ; %定义
TestFun2(pi) %调用
- 单行表达式
①一元函数:f(x)=@(x) 数学中以x为未知量的函数式
②二元函数:f(x,y)=@(x,y) 数学中以x,y为未知量的函数式
%一元函数:
TestFun = @(x) sin((1/2)*pi*x) + 10;
TestFun(1)
%二元函数:
TestFun1 = @(h,l) h+l;
TestFun1(5,1)
- str2func函数
str2fun(‘函数名’)
TestFun3 = str2func('cos');
TestFun3(pi)
3 句柄的使用
- 将函数句柄作为函数参数
- 利用函数句柄进行画图
- 利用函数句柄进行图像的滤波
- 组合匿名函数实现更复杂的函数句柄
参考
[1] https://www.cnblogs.com/heleifz/p/matlab-function-handle.html