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 函数句柄@的介绍_什么是函数句柄(转)相关推荐

  1. 不是有效的函数或过程名_过程和函数

    VBA代码有两种组织形式,一种是过程,另一种就是函数.其实过程和函数有很多相同之处,除了使用的关键字不同之外,还有不同的是: 函数有返回值,过程没有. 函数可以在Access窗体,查询中像一般的Acc ...

  2. 廖雪峰讲python高阶函数求导公式_高阶函数 - 廖雪峰 Python 2.7 中文教程

    高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数abs()为例,调用该函数用以下 ...

  3. 不是有效的函数或过程名_什么是函数?

    1.什么是函数? 1.函数是一个可以多次使用的功能代码块,一个封闭的(空间),它可以在代码里随意调用.利用函数的封装可以减少重复代码的开发,提高代码的利用率.函数可以传参,利用函数内预先定义的内容对传 ...

  4. 内联函数什么时候展开_内联函数

    内联函数什么时候展开 You know all of those Util files you create with all sorts of small functions that you en ...

  5. 函数对称性常见公式_知识点:函数的对称性总结

    知识点:函数的对称性总结 函数是中学数学教学的主线,是中学数学的核心内容, 也是整个高中数学的基础.函数的性质是竞赛和高考的重点 与热点,函数的对称性是函数的一个基本性质,对称关系不 仅广泛存在于数学 ...

  6. python一个函数调用另一个函数的返回值_在python函数中使用True,False和None作为返回值...

    建议不是你不应该使用True,False或None.这只是你不应该使用如果x == True. 如果x == True是愚蠢的,因为==只是一个二进制运算符!它的返回值为True或False,取决于它 ...

  7. index match函数的使用方法_必学函数组合INDEX+MATCH,秒杀VLOOKUP函数

    VLOOKUP 职场里面用的太频繁的,是必须掌握使用的函数公式,在这个函数的使用过程中,有时候用起来也不是很方便,比如下面两个场景 ❶逆向查找匹配 左边是员工编号,姓名,工资表格数据,现在需要根据姓名 ...

  8. q函数表格怎么看_会计表格函数玩不会?超实用会计表格函数公式大全,财务人都在用...

    Excel函数公式可以说是用的比较方便的,很多会计人员都喜欢用函数公式来进行处理日常财务表格.但是很多新手会计人员都会时不时地吐槽:会计表格所涉及到的Excel函数公式记不住不会用呀,还经常会加班到很 ...

  9. python函数必背知识点_必背函数——python学习第四次总结

    七个基本必背函数 join 将设置字符插入目标字符串中每个字符中间 split 按既定字符将目标字符串内全部对应分割,默认从左开始,可指定分割次数(分割后对应分割符不会返回) find 从前往后在既定 ...

最新文章

  1. 谨慎跟随初始目的不被关联问题带偏
  2. mongodb 事务_MongoDB4 事务 简单易懂的??
  3. 信息系统项目管理知识--云计算
  4. 李宏毅机器学习作业1:预测PM2.5(含训练数据)
  5. 在双11大促中的数据库服务器
  6. Requests库的主要方法:requests.request为requests.get和requests.post两个的汇总,只是需要传方法...
  7. Scikit-learn的分类器算法:k-近邻及案例
  8. 数据库 连接池、缓冲池(定义、原理)
  9. Android含文档server结束(client UI接口异步请求的一部分)三
  10. python configure函数 循环_使用python统计git仓库中频繁修改的热点函数
  11. Spring Boot + Activiti 工作流框架搭建
  12. 超详细!一文详解 SparkStreaming 如何整合 Kafka !附代码可实践
  13. 计算机二级基础知识栈的计算,计算机二级考试公共基础知识点:栈及其基本运算.doc...
  14. 原理剖析(第 006 篇)Semaphore工作原理分析
  15. 倚天鸿蒙系统,倚天屠龙记强化系统详解
  16. 智密-腾讯云直播 MLVB 插件优化教程:六步提升拉流速度+降低直播延迟
  17. 织梦网站如何上传服务器还原,网站转移教程:织梦系统数据库备份和还原的方法步骤...
  18. python 京东 抢券_Python写一个京东抢券脚本
  19. 随机过程 自相关函数 互相关函数自协方差矩阵 互协方差矩阵的区别联系
  20. 学计算机的演员,南开大学计算机系到演员 张桐回顾“不安分”的青春

热门文章

  1. anti-debug你必须知道的基础篇 All in one
  2. 解决SQL Server报错:229、262、5123
  3. linux mint安装搜狗输入法
  4. 产品经理那些事:产品经理五年后的成长
  5. 局域网联机_文明6/单机.局域网联机/5/4/3【单机游戏】
  6. 如何在Win10日历便签中设置添加定时提醒和活动
  7. 安装Android x86
  8. 开启docker的大门,docker基本使用方法
  9. Mysql莫名其妙的错误,语法没错却报语法错误
  10. 183条地铁线路,3034个地铁站,发现中国地铁名字的秘密。