Matlab自学笔记:句柄、函数句柄、图像句柄(概念、用法、原理和区别)

句柄的概念

今天看交流群里在讨论句柄是什么意思,我觉得这是一个很好话题,浅述己见,欢迎交流;

1 首先说,a=1,这里a是一个变量,它的值简单明了,就是1,计算a+1,不用多说,大家立刻明白,结果是2;

2 再说句柄,其实也是一种变量(变量可以直接理解成它的名字,如上例,找到变量名a,那么就找到了它的值1,在一个程序环境中,变量名必须是唯一的,否则会出现变量覆盖的现象,从这个角度说,变量名也就约等于,大家的身份证号了),不过它是一种特别的变量;

3 具体说,句柄作为一种变量,它的特殊性在于,它指向的不是一个简单具体的值,而是一个结构体,这个结构体包含了很多可以读写的分支数据,一般称为属性或者方法,例如图窗类的句柄,使用plot作图之后,形成的图形对象包含线型、颜色、坐标轴刻度、作图范围等,都是这个图像结构体的属性;如果要修改其中的线型或者颜色等属性,就需要通过句柄先找到这个图像,再在图像中找到相应的属性,索引格式是:h.width(h就是图像句柄,width是其中一个表达线宽的属性),至于如何修改和赋值参照上述a=1思考就好了。(这个就比如,通过身份证号先找到你这个人,然后,你的年龄、性别、学历等信息都可以查找了,你就是一个句柄,年龄、性别等都是你的属性)

4 最后再说下,句柄中的非常规概念句柄,函数句柄,它虽然也称为句柄,但用法上,基本不太使用他的属性(它好像也没有什么属性),而是指向函数表达式本身,为什么会这样,例如,函数f(x)=sin(x),常规用法是求函数值,x=0,f(x)=sin(0)=0,没有问题,问题是,如果要求函数f(x0的极值,或者f(x)=0方程的根,大家立刻发现,仅输入自变量或者函数值是不行的,而需要输入整个函数表达式,也就是说,把函数表达式作为一个整体输入变量,常规变量如a=1是做不到的,不信你试试a=f(x),肯定回报错,怎么办呢,函数句柄应运而生,使用@符号创建一种新的变量,如,a=@f(上面已经定义了f函数),那么求方程f=0的根,只需要调用求根函数fzero,应用格式为:fzero(a),或者fzero(@f),求最值就不用说了,事实上,在优化专题里,目标函数的输入都是用函数句柄的这种方式。

以上是以Matlab编程环境说明的。

End

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

freexyn

码字不易,谢谢鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值