1

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

4

1 回答 1

3

您通常可以使用句柄图形属性来执行此操作。例如:

做一个情节

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')

(大概最后一个例子可以用一个设计合理的正则表达式来改进,但我现在似乎无法让它工作。)

于 2012-02-20T16:53:41.047 回答