在Matlab图上获取对象的位置

时间:2012-02-20 16:40:07

标签: user-interface matlab plot matlab-figure

如何直接从Matlab命令窗口获取我在绘图上绘制的对象(例如箭头,矩形或者sim。)的位置(即坐标)?

1 个答案:

答案 0 :(得分:3)

您通常可以使用handle graphics属性执行此操作。例如:

制作情节

h = plot(1:10, rand(10,1)); 

然后获得点的实际值     x = get(h,'xdata')     y = get(h,'ydata')

不同类型的对象具有不同的属性,有时您必须要探索。在这种情况下,这种语法很有用。

get(h)  %This displays all available properties on `h` to the command window

最后一个有用的花絮是gco(“获取当前对象”)函数,它提供您绘制或手动单击的最后一个项目的句柄。如果您不确定所绘制项目的来源,这可能会有所帮助。


编辑:

要查找作为对象后代的所有属性,请使用findobjfindall。例如:

findobj(gcf);  %Returns all non-hidden, typical objects.  This should be your first attempt.
findall(gcf);  %Returns all children, even hidden object, such as titles, manually added annotations, and UI menus

此调用会删除一些常见的UI注释

get(findall(gcf,'-not','type','uimenu','-not','type','uitoggletool','-not','type','uipushtool','-not','type','uitogglesplittool'),'type')

(据推测,最后一个例子可以通过正确设计的正则表达式来改进,但我现在似乎无法正常工作。)