MATLAB函数句柄

MATLAB函数句柄之前一直在用,也知道这么个东西,但是没怎么总结。感觉matlab函数句柄就是c语言里面的函数指针,在matlab里面叫它handle,句柄嘛,有了它就可以操纵这个对象(这里也可以叫做函数),这个概念其实可以推广到很多东西,图形fig,自定义函数句柄(也就是下面将会展示的),matlab自带函数句柄,以及某些函数返回的函数句柄,某些类对象或者表达式,也可以叫做句柄。1、何为函数句柄?函数句柄…

大家好,又见面了,我是你们的朋友全栈君。

之前一直在用,也知道这么个东西,但是没怎么总结。感觉matlab函数句柄就是c语言里面的函数指针,在matlab里面叫它handle,句柄嘛,有了它就可以操纵这个对象(这里也可以叫做函数),这个概念其实可以推广到很多东西,图形fig,自定义函数句柄(也就是下面将会展示的),matlab自带函数句柄,以及某些函数返回的函数句柄,某些类对象或者表达式,也可以叫做句柄。

1、何为函数句柄?

函数句柄也是MATLAB中的一种常见的数据类型,

它的地位类似于其它计算机语言里的函数对象(Javascript,Python),函数指针(C++),或者函数引用(Perl)。

它的作用是将一个函数封装成一个变量,使其能够像其它变量一样在程序的不同部分传递。。引入函数句柄可使函数调用变得更加灵活方便,极大地提高了函数调用的速度和效率。MATLAB中函数句柄的使用使得函数也可以成为输入变量,并且能很方便地调用,提高函数的可用性和独立性。

2、函数句柄的创建:

方式①:直接加@

语法:@函数名fun1 = @sin;

方式②:str2func函数

语法:str2fun(‘函数名’)

fun2 = str2func(‘cos’);

方式③:str2func函数

语法:@(参数列表)单行表达式
    fun3 = @(x, y)x.^2 + y.^2;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3、函数句柄的调用:

假定一个函数的调用格式为:[y1,y2,…,yn] = FunctionName(x1,x2,…,xm)

该函数通过以下方式构建函数句柄:Hfunction = @FunctionName

则通过函数句柄实现函数运算的调用格式是:直接调用 Hfunction (x1,x2,…,xm) 或者 [y1,y2,…,yn]=feval (Hfunction,x1,x2,…,xm)

例如:
在这里插入图片描述

句柄是matlab语言独有的参数,相当于C语言的指针。
句柄分为多种,如函数柄,对象柄,图形柄等。
图形句柄就指一个图形,在生成图形时同时得到一代号,如语句 h=plot(x,y),h 就是一个图形句柄,在后来的某一个地方就可用h代表这个图,如 set(h,…),对这个图形进行再设置。
1.函数句柄
函数句柄简介:函数句柄(function handle)是MATLAB中的一类特殊的数据结构,它的地位类似于其它计算机语言里的函数对象(Javascript,Python),函数指针(C++),或者函数引用(Perl)。作用是将一个函数封装成一个变量,使其能够像其它变量一样在程序的不同部分传递。
句柄创建:
(1)fun1=@sin;
(2)fun2=str2fun(‘cos’);
(3)匿名函数:fun3=@(x,y)x2+y2;
函数句柄应用:函数句柄作为函数参数;利用函数句柄绘图;利用函数句柄滤波等

比如定义f(x)=x^2写
f=@(x)(x.^2)
其@(x)(x.^2)匿名函数第括号面自变量第二括号面表达式@函数指针
f=@(x)(x.2)表示匿名函数@(x)(x.2)赋值给f于f表示该函数
于f(2)=2.2=4;f(1:3)=[1:3].2=[1 4 9]等等

定义匿名函数调用别匿名函数比
f1=@(x,y)(x.2+y.2)
定义函数x2+y2
f2=@(t)(f1(t,2))
定义函数t^2+4
f3=@(x)(f1(x(1),x(2)))
定义函数x(1)2+x(2)2
使用匿名函数定要注意函数本身参数形式
f1(2,3)
表示22+32
f2(3)=3
表示3^2+4
f3([1,2])
表示12+22
说白函数指针

handle=@functionname
返指向制定MATLAB函数句柄
函数句柄指指向函数量句柄函数获函数句柄存

图形句柄和图形之间是一种一一对应关系,简单的说图形句柄就是指向了这个图形的一个变量,通过它可以设定该图形的各种属性。

matlab其实还有很多新颖奇妙的函数用法,给我们带来了很多便利,需要的时候多去查查就好了。

参考文献:
https://www.cnblogs.com/shenxiaolin/p/9257608.html
https://blog.csdn.net/algorithm_lixuan/article/details/75675176
https://jingyan.baidu.com/article/ed15cb1b58587c1be3698102.html
https://blog.csdn.net/daaikuaichuan/article/details/77801780
https://www.cnblogs.com/weiweicf/p/5970497.html
https://blog.csdn.net/daaikuaichuan/article/details/77801780
https://blog.csdn.net/yhl_leo/article/details/50699990
https://blog.csdn.net/lqzdreamer/article/details/70237495

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160801.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python中encode和decode的区别_python isalpha

    python中encode和decode的区别_python isalpha在python中,我们通常使用的是unicode编码,但是日常文本使用各类编码为utf-8,编码的类型不一样,就容易造成乱码。为了避免读写操错误,我们需要进行转码则需要decode(解码)和encode(编码)方法。1、decode的作用是将其他编码的字符串转换成unicode编码将bytes类型转换为str类型(b.decode())2、encode的作用是将unicode编码转换成…

    2022年10月6日
    4
  • 小李打怪兽——01背包

    小李打怪兽——01背包题目描述小李对故乡的思念全部化作了对雾霾天气的怨念,这引起了掌控雾霾的邪神的极大不满,邪神派去了一只小怪兽去对付小李,由于这只怪兽拥有极高的IQ,它觉得直接消灭小李太没有难度了,它决定要和小李在智力水平上一较高下。我们可否帮助小李来战胜强大的怪兽呢?问题是这样的:给定一堆正整数,要求你分成两堆,两堆数的和分别为S1和S2,谁分的方案使得S1*S1-S2*S2的结果小(规定S1>=S2)…

    2022年7月19日
    15
  • pycharm配置路径_如何在pycharm添加解释器

    pycharm配置路径_如何在pycharm添加解释器步骤一:pycharm–>settingforNewProjects步骤二:settingsforNewprojects–>projectInterpreter–>showAll–>Add

    2022年8月25日
    32
  • 宽字节注入原理_sqlmap宽字节注入

    宽字节注入原理_sqlmap宽字节注入在mysql中,用于转义的函数有addslashes,mysql_real_escape_string,mysql_escape_string等,还有一种情况是magic_quote_gpc,不过高版本的PHP将去除这个特性。首先,宽字节注入与HTML页面编码是无关的,笔者曾经看到<metacharset=utf8>就放弃了尝试,这是一个误区,SQL注入不是XSS。虽然他们中编码的成…

    2022年10月14日
    2
  • ROC曲线与AUC

    ROC曲线与AUC对于0,1两类分类问题,一些分类器得到的结果往往不是0,1这样的标签,如神经网络,得到诸如0.5,0,8这样的分类结果.这时,我们人为取一个阈值,比如0.4,那么小于0.4的为0类,大于等于0.4的为1类,可以得到一个分类结果。同样,这个阈值我们可以取0.1,0.2等等。取不同的阈值,得到的最后的分类情况也就不同。阈值不同,可以得到不同的结果,但是由分类器决定的统计图始终是不变的。这时候就需要一个独立与阈值,只与分类器有关的评价指标,来衡量特定分类器的好坏。还有在类不平衡的情况下,如正样本90个,负样本

    2022年5月13日
    42
  • python在线音乐播放器_python实现音乐播放器「建议收藏」

    python在线音乐播放器_python实现音乐播放器「建议收藏」python是一个比较活泼的语言,它可以很快速、很方便地实现很多有意思的东西。最近,学习了一下如何使用python制作一个简单的音乐播放器,整体的效果如下图所示。所需要的导入的库tkinterostimethreadingpygame如果没有安装这个库,简单粗暴的pipinstall+库例如,我没有安装过pygame这个库,准备工作下载音乐,喜欢的歌曲,选择mp3格式这里,给大家提供一个…

    2022年6月26日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号