Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3297564
  • 博文数量: 754
  • 博客积分: 10132
  • 博客等级: 上将
  • 技术积分: 7780
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-14 23:36
文章分类

全部博文(754)

文章存档

2012年(3)

2011年(39)

2010年(66)

2009年(167)

2008年(479)

我的朋友

分类:

2010-06-30 15:59:08

       本总结意在解决如下问题:利用定时器回调函数或串口回调函数在GUI指定的axes绘图时,曲线图片总是不显示在指定的坐标轴上,总是会弹出新的窗口显示。
       利用guide来创建GUI程序时,可能大家对figure的 HandleVisibility属性以及axes的NextPlot属性关注的不多。figure的HandleVisibility属性有三个属性 值:on\off\callback。前两个的含义顾名思义,其作用可以看帮助文件,在此不详述。最后一个callback属性值,它 是确保该figure的句柄(handle)对figure内的控件的回调函数以及回调函数内定义的函数来说是‘可见’的,而对于其它例如通过命令行来访问的用户来说是‘不可见’的,这样可以确保该 figure不被无意中删除或修改其中的内容。
       可见,figure的HandleVisibility属性的callback属性值带有明显的保护figure的作用,是有益的。但是这种保护机制对于 使用定时器或串口自定义回调函数来绘制曲线的用户来说,就会带来麻烦。
       因为定时器或串口对象不是figure所包含的对象,所以其回调函数在调用figure内的axes来绘图时,就会发现找不到 该figure的handle,以为该figure对象不存在,于是就会新建figure窗口,在其中创建axes来显示的曲线。
    根据以上分析,如果用户在利用定时器或串口回调函数绘制图形时出现上述问题,解决办法如下:
    1、fugure‘HandleVisibily’属性值默认为‘callback’,把它改为‘on’
    2、axes的‘NextPlot’的属性值默认为‘replace’,改为‘add’
    3、在绘图语句的前面使用语句axes(handles.axes1);%'axes1'为axes的'tag'

   
   先前有会员在编程时遇到同样的问题,根据以上方法,问题顺利解决。
   希望有遇到类似问题的会员可以参考该帖子。:-)

  以上是个人经验,如有不足,欢迎指正修改,多谢。
阅读(1148) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~