匿名函数与之相对的即为需要.m
文件存储的命名函数,匿名函数可以在任意地方定义(包含命令行窗口),且由于没有固定的名称,函数是可以像变量一样被传递的。以下详细讲解一下MATLAB中不可或缺的一部分具体能够怎么用:
先给个目录,千万不要被吓到:
目录
1 匿名函数的生成
1.1基础生成
- 1 匿名函数的生成
- 1.1基础生成
- 1.2 多参数匿名函数
- 1.3 含定参匿名函数
- 1.4 sym转匿名函数
- 1.5 字符串转匿名函数
- 1.6 函数工厂(匿名函数的自动生成)
- 1.6.1 已知参数个数
- 1.6.2 未知参数个数
- 1.7 拟合结果转匿名函数
- 1.8 匿名函数的引用
- 1.9 匿名函数的传递
- 1.10 无参数匿名函数
- 1.11 可变长度输入参数列表
- 1.12 多返回值匿名函数
- 1.13 命名函数转化为匿名函数
- 2 匿名函数的结构
- 2.1 匿名函数数组
- 2.2 匿名函数结构体
- 2.3 匿名函数的非标量结构体数组
- 2.4 functions函数使用
- 2.5 局部命名函数的匿名函数列表
- 2.6 特殊结构匿名函数
- 3 匿名函数的使用
- 3.1 以匿名函数为参数
- 3.2 调用其它文件匿名函数
- 3.3 使用匿名函数表示隐函数
- 3.4 绘图匿名函数
(例)
f=@(x)x^2;
注:匿名函数所输入的参数可以是向量形式,只需将其中部分运算更改为点运算即可:
f=@(x)x.^2;
f(1:5)
ans = 1 4 9 16 25
也可以这么写,但除了3.3所示情况外不推荐:
f=@(x)arrayfun(@(x)x^2,x)
f(1:5)
当然eval
函数cellfun
,structfun
等一系列常用函数也是可以在匿名函数中用到的。
同时逻辑运算对于匿名函数也成立,如下:
f=@(x)x>3&x3)*5+(x3)+1}(f,n-1)+f{(n>4)+1}(f,n-2)};
fib=@(n)f{(n>2)+1}(f,n);
fib(20)
ans = 6765
匿名if函数: 巧用varargin函数
iff = @(varargin)varargin{find([varargin{1:2:end}],1)*2};
x = 3;
iff(x
关注
打赏