精华内容
下载资源
问答
  • MATLAB函数句柄

    万次阅读 多人点赞 2019-05-15 10:44:51
    感觉matlab函数句柄就是c语言里面的函数指针,在matlab里面叫它handle,句柄嘛,有了它就可以操纵这个对象(这里也可以叫做函数),这个概念其实可以推广到很多东西,图形fig,自定义函数句柄(也就是下面将会展示的),...

    之前一直在用,也知道这么个东西,但是没怎么总结。感觉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

    展开全文
  • Matlab函数句柄

    2017-06-14 12:08:20
    Matlab函数句柄
    >> F_Handle=@sin;
    >> A=0:0.125*pi:2*pi;  %(a:b:c)其中a是开始,c是结束,b是步距
    >> F_Handle(A)
    
    ans =
    
      1 至 9 列
    
             0    0.3827    0.7071    0.9239    1.0000    0.9239    0.7071    0.3827    0.0000
    
      10 至 17 列
    
       -0.3827   -0.7071   -0.9239   -1.0000   -0.9239   -0.7071   -0.3827   -0.0000
    
    
    


    展开全文
  • matlab函数句柄

    2021-01-17 18:11:00
    matlab函数句柄 直接调用函数:  被调用函数只能被其M文件同名的主函数或在M文件中的其他函数调用,一个文件只有一个主函数。 间接调用函数:  避免只能使用直接调用函数的情况,个人理解就是为一个函数起了一个...

    matlab函数句柄

    直接调用函数:

     被调用函数只能被其M文件同名的主函数或在M文件中的其他函数调用,一个文件只有一个主函数。

    间接调用函数:

     避免只能使用直接调用函数的情况,个人理解就是为一个函数起了一个别名。

    Function Handle = @Function Filename;
    
    • FunctionFilename是函数所对应的M文件的名称或MATLAB内部函数的名称。

    • @是句柄创建操作符。

    • Function Handle变量保存了这一函数句柄,并在后续的运算中作为数据流进行传递。

    实例

    >>  fun1=@sin
    
    fun1 =
    
      包含以下值的 function_handle:
    
        @sin
        
    >> fun1(0.5*pi)
    
    ans =
    
         1
    
    >> 
    

    相关函数:

    函数名称 函数功能
    functions(funhandle) 返回一个结构体,存储了函数的名称、函数类型(simple或overloaded),以及函数M文件的位置
    func2str(funhandle) 将函数句柄转换为函数名称字符串
    str2func(str) 将字符串代表的函数转换为函数句柄
    save filename.mat funhandle 将函数句柄保存在*mat文件中
    load filename.mat funhandle 把*.mat文件中存储的函数句柄加载到工作区
    isa(var, ‘function handle’) 检测变量var是否是函数句柄
    isequal(funhandlea, funhandleb) 检测两个函数句柄是否对应于同一个函数
    展开全文
  • matlab 函数句柄

    2015-10-09 20:02:51
    matlab 函数句柄一点小记录

    《函数句柄实际上提供了一种间接调用函数的方法》

    创建函数句柄需要用到操作符@

    创建函数句柄的一般语法如下所示:
    fhandle = @function_filename

    例如fhandle = @sin就创建了sin的句柄,输入fhandle(x)其实就是sin(x)的功能。

    reference:
    http://blog.csdn.net/shaoguangleo/article/details/6043331

    展开全文
  • MATLAB 函数句柄

    2019-07-18 08:10:27
    间接使用函数 ...更常见的情况是将引用的句柄当做函数的参数传入另一个函数(主函数),这样在主函数中,我们就可以根据输入调用不同的函数。例如: % main.m function test(functionHandle) a = fu...
  • MATLAB函数句柄和 M文件 PAGE PAGE # 第 6 章 M 文件和函数句柄 Matlab控制流 脚本文件和函数文件 Matlab的函数类别 函数句柄 6.1 MATLAB 控制流 if-else-end 条件控制 swith-case 控制语句 for 循环和 while 循环 ...
  • MATLAB函数句柄、单元数组和结构

    千次阅读 2016-08-04 19:36:35
    关于MATLAB函数句柄、单元数组和结构
  • 函数句柄MATLAB使用过程中经常涉及到, 个人小小的汇总一下,有不足和错误之处还望大家多多包涵和指点补充 函数句柄的定义具体参见官方文档...
  • matlab函数句柄介绍

    千次阅读 2017-07-21 21:41:56
    答:表示f为函数句柄,@是定义句柄的运算符。f=@(x)acos(x) 相当于建立了一个函数文件: % f.m function y=f(x) y=acos(x); 若有下列语句:xsqual=@(x)1/2.*(x==-1/2)+1.*(x>-1/28&x 则相当于建立了一个函数文件...
  • MATLAB函数句柄 Function Handle

    万次阅读 2017-05-20 11:21:41
    作用:   将函数传递给另一个函数(function functions)。  指定回调函数。...例子:建立一个函数句柄 生成函数句柄:f=@zeros 计算2*2的零矩阵,语法为:f(2) %相当于使用 zeros(2) >&g...
  • MATLAB函数句柄 函数句柄(Function handle)是MATLAB的一种数据类型。 包含了函数的路径、函数名、类型以及可能存在的重载方法; 引入函数句柄是为了使feval及借助于它的泛函指令工作更可靠;使“函数调用...
  • matlab 函数句柄(function handle)

    千次阅读 2016-12-02 15:57:38
    函数句柄是一种MATLAB的数据类型,它包含引用函数的信息。 使用函数句柄的好处 传递函数访问信息给其它的函数 允许对子函数和私有函数更广的访问 减少需要定义的函数的数量 改善重复操作的性能
  • MATLAB 函数句柄的用法

    千次阅读 2012-11-23 10:47:58
    函数句柄(Function handle)是MATLAB的一种数据类型。引入函数句柄是为了使feval及借助于它的泛函指令工作更可靠;特别在反复调用情况下更显效率;使“函数调用”像“变量调用”一样方便灵活;提高函数调用速度,...
  • Matlab函数句柄小测

    2016-11-20 11:11:04
    其类似于C/C++中函数名或者函数的取地址操作,在C/C++中函数的作为参数的传递,可以通过函数名func或者&func的形式作为参数。data=load('../train_task_data.mat','train_task_data'); train_task_data=data.train_...
  • (3)符号@是matlab创建函数句柄的操作符,表示创建有输入参数列表arglist和表达式express确定的函数句柄,并把这个函数句柄返回给变量fhandle,这样,以后就可以通过fhandle来调用定义好的函数了。 如: myfun=@(x...
  • 【转载】MATLAB函数句柄和匿名函数

    千次阅读 2017-04-19 10:24:19
    转自:... 下面代码创建一个内联函数a_humps: >> a_humps = inline('1./((x-.3).^2+0.01)+1./((x-.9).^2+0.04)-6','x') a_humps =  Inline function:  a_humps(x) 
  • 1、提高运行速度:因为matlab对函数的调用每次都是要搜索所有的路径,从set path中可以看到,路径是非常的多的,所以如果一个函数在程序中需要经常用到的话,使用函数句柄,对速度会有提高的; 2、可以与变量一样...
  • 函数句柄变量不仅可以用来表示数值(如: 1, 0.2, -5), 用来表示字符串(如: t, casino), 也可以用来表示函数哦. 当然, 你也看到了前面我们提到的函数都是一个一个的文件, 直接塞到一个变量里面似乎太大, 不过我们可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,540
精华内容 616
关键字:

matlab函数句柄

matlab 订阅