登录论坛

查看完整版本 : 如何在MATLAB中找到注释句柄?


poster
2019-12-10, 20:48
我正在尝试从MATLAB FEX实现datetick2 (http://www.mathworks.com/matlabcentral/fileexchange/20422-datetick-with-zooming-panning-and-subplots)的修改版本。当在较小的日期范围内放大绘图时,将不显示日/月/年等,具体取决于绘图中的时间范围。我想在图的左下角添加“ dd-mmm-yyyy”格式的开始日期作为注释。没问题,就完成了。

但是,如果用户使用缩放功能选择其他日期范围,接下来我要更新它。与其传递更多的句柄,不如只查找注释。但是, findobj (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/findobj.html)似乎不适用于hggroup类型,这是注释所属的类型。我使用错了吗?

这是一个代码示例:

>> times=now-[50:-5:0]; >> days=times-times(1); >> plot(times,days) >> datetick2() >> xlabel('Date') >> ylabel('Days') >> title('Example') >> initialdate=datestr(min(get(gca,'xlim')),'dd-mmm-yyyy'); >> txt=annotation('textbox', [.01,.01,.1,.05],... 'string', initialdate,... 'Linestyle','none'); >> >> >> findobj('type','hggroup') ans = Empty matrix: 0-by-1 >> get(txt,'type') ans = hggroup >> findobj('type','axes') ans = 270.0034 如您所见,findobj不起作用,但是如果我使用在工作空间中定义的句柄,则该类型会弹出并直接显示为hggroup 。



回答:

您可能必须首先将根目录'ShowHiddenHandles'属性设置 (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/rootobject_props.html#ShowHiddenHandles)为'on' ,然后尝试使用FINDOBJ (http://www.mathworks.com/access/helpdesk/help/techdoc/ref/findobj.html)查找对象,然后将其设置回默认的'off' 。



更多&回答... (https://stackoverflow.com/questions/3516514)