美文网首页
Matlab 句柄相关概念总结

Matlab 句柄相关概念总结

作者: 汪小鱼 | 来源:发表于2021-09-29 07:02 被阅读0次

    1、在matlab中,每一个对象都有一个数字来标识,叫做句柄.当每次创建一个对象时,matlab就为它建立一个唯一的句柄。

    2、句柄中包含有该对象的相关信息参数,可以在后续程序中进行操作,改变其中的参数,以便达到不同的效果。

    3、句柄与指针的区别在于:指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。而句柄不行,它是对象生成时系统指定的,是为了区别系统中存在的各个对象。

    4、从数据类型上来看它只是一个16位的无符号整数。句柄实际上是一种指向某种资源的指针,但与指针又有所不同。“句柄”(handle),handle的本意是把柄,把手的意思。相当于C语言中的函数指针(入口地址),只不过句柄就用一个唯一的常整数来指出。

    5、函数句柄提供一种简介访问函数的手段,用户可以很方便地调用其他函数:提供函数调用过程中的可靠性,减少程序涉及中的冗余,同时可以在使用函数的过程中保存函数相关的信息,尤其是关于函数执行的信息。

    创建函数句柄使用 @ 或者 str2func 命令创建
    函数句柄的创建:handle=@functionname,handle 为所创建的函数句柄,functionname 为所创建的函数。或者 handle=str2func('functionname')

    那么使用函数句柄有什么好处呢?

    1、提高运行速度。因为matlab对函数的调用每次都是要搜索所有的路径,从set path中我们可以看到,路径是非常的多的,所以如果一个函数在你的程序中需要经常用到的话,使用函数句柄,对你的速度会有提高的。

    2、使用可以与变量一样方便。比如说,我再这个目录运行后,创建了本目录的一个函数句柄,当我转到其他的目录下的时候,创建的函数句柄还是可以直接调用的,而不需要把那个函数文件拷贝过来。因为你创建的function handles中,已经包含了路径。

    函数句柄的操作:

    functions:返回函数句柄的相关信息
    
    func2str:根据函数句柄创建一个函数名的字符串
    
    str2func:由一个函数名的字符串创建一个函数句柄
    
    save:从当前工作区间向M文件保存函数句柄
    
    load:从一个M文件中向当前工作区间调用函数句柄
    
    isa:判断一个变量是否包含一个函数句柄
    
    isequal:判断两个函数句柄是否为某一相同函数的句柄
    

    我的理解:句柄类似于对对象的引用(弱引用),可以通过句柄查看对象的属性,也可以通过对句柄的调用来修改对象的相关属性。函数句柄可以理解为函数指针,handle,”把手“。函数句柄一般应用在匿名函数和对图形对象设置相关样式。

    参考文章:
    http://blog.sina.com.cn/s/blog_c0468c8f0101xbbu.html
    https://blog.csdn.net/qq_30089191/article/details/72853960
    https://blog.csdn.net/algorithm_lixuan/article/details/75675176
    https://u011936142.iteye.com/blog/2032526
    https://www.cnblogs.com/weiweicf/p/5970497.html
    https://blog.csdn.net/aiieno0/article/details/24785625

    相关文章

      网友评论

          本文标题:Matlab 句柄相关概念总结

          本文链接:https://www.haomeiwen.com/subject/vfhhnltx.html