matlab句柄

转载自http://blog.sina.com.cn/s/blog_c0468c8f0101xbbu.html

在matlab中,每一个对象都有一个数字来标识,此标识成为句柄,当每次创建一个对象时,matlab就为他创建一个唯一的句柄。句柄的作用不言而喻。句柄中包含有该对象的相关信息参数,可以在后续程序中进行操作,改变其中的参数,以便达到不同的效果。

 

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

 

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

 

例如:

h=figure(1);   % 创建1号窗口,返回句柄

返回值,h=1

给新建的窗口创建的句柄号为1,通过该句柄号,就可可以得到该图形的属性。

get(h), get函数中输入句柄号,可以返回句柄值h所指定的图形对象的所有属性名称与相对应的属性值

 

get(hObject,'String'), 取出hObject句柄所指对象中的 'String'值

 

比如定义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)
定义了函数x^2+y^2
f2=@(t)(f1(t,2))
定义了函数t^2+4
f3=@(x)(f1(x(1),x(2)))
定义了函数x(1)^2+x(2)^2
使用匿名函数时一定要注意函数本身的参数形式,如
f1(2,3)
表示2^2+3^2
f2(3)=3
表示3^2+4
f3([1,2])
表示1^2+2^2 
说白了就是函数指针
  • 11
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值