MATLAB图像用户界面(3)

      相信大家都曾看过类似这样的语句,而且你一定会留意到“@”符号,然后查资料知道它是创建函数句柄的操作符。那么问题来了,什么是句柄呢?

myfunhd=@(x)(x+x.^2)   %创建匿名函数
    myfunhd(a);            %调用程序

      在MATLAB中,每个对象有一个与之相对应的标示符,即为句柄,实际为一个双精度数据。当创建一个对象时,系统会自动为该对象创建一个唯一的句柄。我们可以将句柄形象地理解为该对象的“身份证”或者是它的替身,而且只有唯一的一个!
       根对象(计算机屏幕)的句柄设置为0。图形句柄在默认情况下为整数值,并在图形窗口的标题栏中显示,而其他对象的句柄数值一般为双精度的浮点数。所有对象的生成函数都会将创建对象的句柄数值返回给所创建的变量。

 

1.句柄的命名习惯:
 
 H+类型字母+_+描述性的字母
   
 类型字母:f——图形   a——坐标轴   t——文本对象       x——未知对象类型

描述性字母就是根据用户对对象的功能定义,例如Ha_xy,表示xy坐标轴。

 

2.使用句柄操作图形对象

 

new_handle=copyobj(h,p) 创建新的图形图像,并将一个对象从一个父对象复制到另外一个父对象中。复制后新的图形对象和原来的图形对象相比,主要差别在于父对象属性及图形句柄的不同。

 

p——三个指令式命令

1)gcf,返回当前图形窗口的句柄
2)gca,返回当前坐标轴的句柄
3)gco,返回鼠标点击后最近的图形对象的句柄

 

看到这里,你们就了解上篇博客中类似下面语句的gcf是为何物了?

hc_frame=uicontrol(gcf,'Style','frame','Position',[250 200 95 90]);

 

下面就谈谈回调属性,"Callback"!应用的例子,上节博客中有许多,这里就不再列举,我们谈下它的属性值要求。

  

'CallBack','close'

 

'CallBack',[...
    'if get(hc_box,''Value'')==1,',...
   'set(gca,''Box'',''on''),',...
   'else,',...
   'set(gca,''Box'',''off''),'...
   'end']);

 

 由上我们可以发现,属性值是字符串,可以有一个命令或者多重命令;如果不止一个,命令间必须用","分开,同时每一条语句都要在' '之间。

 

这里归纳出一些常用规则:

 

1.整个回调字符串都要括在方括号中,同时不要遗漏右括号。

2.各语句都要括上单引号。

3.已引用的字符串内,要用双引号,并且引号后要用逗号或空格结尾。

4.除了最后一句,各语句在引号内要以逗号或分号结尾,在引号后要用逗号或空格结尾。

5。有后续行的各行要以三个点号结尾。

 

了解规则后,我们再看下面的例子就会发现其实创建uicontrol对象之类的并不麻烦,把回调函数语句拆分括进一条条单引号中即如此。

hm_box=uimenu(hm_ex,'Label','Axis Box','CallBack',[...
'if strcmp(get(gca,''Box''),''on''),',...
'set(gca,''Box'',''off''),',...
'set(hm_box,''Label'',''Set Box on''),',...
'else,',...
'set(gca,''Box'',''on''),',...
'set(hm_box,''Label'',''Set Box off''),',...
'end']);

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值