matlab 函数句柄@的介绍_什么是函数句柄(转)
http://blog.csdn.net/kevinhg/article/details/8861774
http://www.ilovematlab.cn/thread-30375-1-1.html
http://blog.sina.com.cn/s/blog_71fb42f70100uyfx.html
----------------------------------------------------------------------------------------------
这个是matlab里边的匿名函数的标志。匿名函数的标准格式是:
fhandle=@(arglist)express
(1)express是一个matlab变量表达式,比如:x+x.^2,sin(x)等
(2)argilst是参数列表;
(3)符号@是matlab创建函数句柄的操作符,表示创建有输入参数列表arglist和表达式express确定的函数句柄,并把这个函数句柄返回给变量fhandle,这样,以后就可以通过fhandle来调用定义好的函数了。
如:
myfun=@(x)(x+x.^2)
------------------------------------------------------------------------------------------------------------------------------------------
觉得自己很少用函数句柄,但是经常遇到,所以在这里总结一下。
函数句柄:是包含了函数的路径、函数名、类型以及可能存在的重载方法。
函数句柄必须通过专门的定义创建的,而一般的图像的句柄是自动建立的。
创建函数句柄使用@或者str2func命令创建
[email=h_fun=@fun]h_fun=@fun[/email];
h_fun=str2func('fun');
比如说sin函数,[email=h_sin=@sin]h_sin=@sin[/email]; h_sin=str2func('sin');
执行sin函数 feval
feval('sin',pi/2)
ans =
1
那么使用函数句柄有什么好处呢?
1、提高运行速度。因为matlab对函数的调用每次都是要搜索所有的路径,从set path中我们可以看到,路径是非常的多的,所以如果一个函数在你的程序中需要经常用到的话,使用函数句柄,对你的速度会有提高的。
2、使用可以与变量一样方便。比如说,我再这个目录运行后,创建了本目录的一个函数句柄,当我转到其他的目录下的时候,创建的函数句柄还是可以直接调用的,而不需要把那个函数文件拷贝过来。因为你创建的function handles中,已经包含了路径,比如说我创建了一个fun
h_fun=str2func('rei');
可以用functions来查看这个function,结果果然已经包括了路径。
——————————————————————————————————————————————————————————————————————
Matlab中的匿名函数的使用
在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
functions(h_fun)
ans =
function: 'rei'
type: 'simple'
file: 'G:\program\serial232\rei.m'
转载于:https://www.cnblogs.com/aminxu/p/4686574.html
matlab 函数句柄@的介绍_什么是函数句柄(转)相关推荐
- 不是有效的函数或过程名_过程和函数
VBA代码有两种组织形式,一种是过程,另一种就是函数.其实过程和函数有很多相同之处,除了使用的关键字不同之外,还有不同的是: 函数有返回值,过程没有. 函数可以在Access窗体,查询中像一般的Acc ...
- 廖雪峰讲python高阶函数求导公式_高阶函数 - 廖雪峰 Python 2.7 中文教程
高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数abs()为例,调用该函数用以下 ...
- 不是有效的函数或过程名_什么是函数?
1.什么是函数? 1.函数是一个可以多次使用的功能代码块,一个封闭的(空间),它可以在代码里随意调用.利用函数的封装可以减少重复代码的开发,提高代码的利用率.函数可以传参,利用函数内预先定义的内容对传 ...
- 内联函数什么时候展开_内联函数
内联函数什么时候展开 You know all of those Util files you create with all sorts of small functions that you en ...
- 函数对称性常见公式_知识点:函数的对称性总结
知识点:函数的对称性总结 函数是中学数学教学的主线,是中学数学的核心内容, 也是整个高中数学的基础.函数的性质是竞赛和高考的重点 与热点,函数的对称性是函数的一个基本性质,对称关系不 仅广泛存在于数学 ...
- python一个函数调用另一个函数的返回值_在python函数中使用True,False和None作为返回值...
建议不是你不应该使用True,False或None.这只是你不应该使用如果x == True. 如果x == True是愚蠢的,因为==只是一个二进制运算符!它的返回值为True或False,取决于它 ...
- index match函数的使用方法_必学函数组合INDEX+MATCH,秒杀VLOOKUP函数
VLOOKUP 职场里面用的太频繁的,是必须掌握使用的函数公式,在这个函数的使用过程中,有时候用起来也不是很方便,比如下面两个场景 ❶逆向查找匹配 左边是员工编号,姓名,工资表格数据,现在需要根据姓名 ...
- q函数表格怎么看_会计表格函数玩不会?超实用会计表格函数公式大全,财务人都在用...
Excel函数公式可以说是用的比较方便的,很多会计人员都喜欢用函数公式来进行处理日常财务表格.但是很多新手会计人员都会时不时地吐槽:会计表格所涉及到的Excel函数公式记不住不会用呀,还经常会加班到很 ...
- python函数必背知识点_必背函数——python学习第四次总结
七个基本必背函数 join 将设置字符插入目标字符串中每个字符中间 split 按既定字符将目标字符串内全部对应分割,默认从左开始,可指定分割次数(分割后对应分割符不会返回) find 从前往后在既定 ...
最新文章
- 谨慎跟随初始目的不被关联问题带偏
- mongodb 事务_MongoDB4 事务 简单易懂的??
- 信息系统项目管理知识--云计算
- 李宏毅机器学习作业1:预测PM2.5(含训练数据)
- 在双11大促中的数据库服务器
- Requests库的主要方法:requests.request为requests.get和requests.post两个的汇总,只是需要传方法...
- Scikit-learn的分类器算法:k-近邻及案例
- 数据库 连接池、缓冲池(定义、原理)
- Android含文档server结束(client UI接口异步请求的一部分)三
- python configure函数 循环_使用python统计git仓库中频繁修改的热点函数
- Spring Boot + Activiti 工作流框架搭建
- 超详细!一文详解 SparkStreaming 如何整合 Kafka !附代码可实践
- 计算机二级基础知识栈的计算,计算机二级考试公共基础知识点:栈及其基本运算.doc...
- 原理剖析(第 006 篇)Semaphore工作原理分析
- 倚天鸿蒙系统,倚天屠龙记强化系统详解
- 智密-腾讯云直播 MLVB 插件优化教程:六步提升拉流速度+降低直播延迟
- 织梦网站如何上传服务器还原,网站转移教程:织梦系统数据库备份和还原的方法步骤...
- python 京东 抢券_Python写一个京东抢券脚本
- 随机过程 自相关函数 互相关函数自协方差矩阵 互协方差矩阵的区别联系
- 学计算机的演员,南开大学计算机系到演员 张桐回顾“不安分”的青春