matlab句柄例子,[转载]matlab句柄之理解

在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

说白了就是函数指针

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值