您当前的位置: 首页 >  matlab

slandarer

暂无认证

  • 1浏览

    0关注

    248博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MATLAB 匿名函数详解(超级全面)

slandarer 发布时间:2021-03-05 00:06:31 ,浏览量:1

匿名函数与之相对的即为需要.m文件存储的命名函数,匿名函数可以在任意地方定义(包含命令行窗口),且由于没有固定的名称,函数是可以像变量一样被传递的。以下详细讲解一下MATLAB中不可或缺的一部分具体能够怎么用:

先给个目录,千万不要被吓到:

目录
  • 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 绘图匿名函数

1 匿名函数的生成 1.1基础生成

(例)

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            
关注
打赏
1664692598
查看更多评论
0.0412s