Matlab中的匿名函数的使用
来源:互联网 发布:矩阵论 pdf 编辑:程序博客网 时间:2024/06/08 16:23
在Matlab7.0以后的版本中,出现了一种新的函数类型–匿名函数,不但能够完成原来版本中内联函数(inline)的功能,还提供了其他更方便的功能。Matlab首席科学家Moler教授都推荐用匿名函数替代原来的内联函数。我最近学习了一些有关匿名函数的内容,现在总结一下:
1,匿名函数的基本用法。
handle = @(arglist)anonymous_function
其中handle为调用匿名函数时使用的名字。arglist为匿名函数的输入参数,可以是一个,也可以是多个,用逗号分隔。anonymous_function为匿名函数的表达式。举个例子如下:
>> f=@(x,y)x^2+y^2; >> f(1,2) ans =5
当然输入的是数组也是可以的:
>> f=@(x,y)x.^2+y.^2; %注意需要点(.)运算 >> a=1:1:10; >> b=10:-1:1; >> f(a,b) ans =101 85 73 65 61 61 65 73 85 101
匿名函数的表达式中也可以有参数的传递,比如:
>> a=1:5; >> b=5:-1:1; >> c=0.1:0.1:0.5; >> f=@(x,y)x.^2+y.^2+c; >> f(a,b) ans =26.1000 20.2000 18.3000 20.4000 26.5000
c作为表达式中的参数,进行了数据传递。上面都是单重匿名函数,也可以构造多重匿名函数,如:
>> f=@(x,y)@(a) x^2+y^+a; >> f1=f(2,3) f1 =@(a)x^2+y^+a >> f2=f1(4) f2 = 85
每个@后的参数从它后面开始起作用,一直到表达式的最后。
2.使用匿名函数实现符号函数的赋值运算
在老版本的Matlab中,这个功能是由inline函数完成的,现在用匿名函数完成此功能。比如:知道z=2x^3+4x+5,求z在x=3处的2阶导数值。可以先用符号函数算出z的2阶导数的表达式,然后通过匿名函数,把x赋予3的值,得到最后结果:
>> syms x; %定义符号变量 >> z=2*x^3+4*x+5; %定义表达式 >> z1=diff(z,2) %求z的2阶导数的表达式 z1 = 12*x >> z2=eval_r(['@(x)' vectorize(z1)]); %vectorize函数的功能是使内联函%数适合数组运算的法则 >> z2(3) ans = 36
0 0
- Matlab中的匿名函数的使用
- Matlab中的匿名函数的使用
- Matlab中的匿名函数的使用
- Matlab匿名函数使用规则
- 浅析MATLAB中的内联函数、匿名函数和函数函数
- 浅析MATLAB中的内联函数、匿名函数和函数函数
- matlab 中的内联函数、匿名函数和函数函数
- 匿名函数的使用
- MATLAB匿名函数的应用1
- MATLAB匿名函数的应用2
- MATLAB匿名函数的应用3
- MATLAB匿名函数的应用4
- MATLAB匿名函数的应用5
- MATLAB匿名函数的应用6
- 匿名函数[matlab]
- MATLAB匿名函数
- matlab匿名函数
- matlab 匿名函数
- svn常见问题解决办法
- 网络流 EdmondsKarp和 Dinic算法
- 查看电脑上安装的cocos2d-x引擎的版本
- Objective-C determine data network type of the iOS device
- java打印各种菱形
- Matlab中的匿名函数的使用
- 70 阶乘因式分解(二)
- IPSEC_TNCFG(8) - 操作KLIPS虚拟接口
- HANA中的SQL&SQLScript&Procedure
- Spring与SpringMVC 容易忽略的context:component-scan配置
- 消除浏览器中的图片默认间隙
- Android WebView一系列
- c++中字符输入函数getline、cin.getline区分
- 动态规划-dp