如何直接从 Matlab 命令窗口获取我在绘图上绘制的对象(例如箭头、矩形或模拟)的位置(即坐标)?
问问题
4697 次
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
(“获取当前对象”)函数,它提供了您绘制或手动单击的最后一个项目的句柄。如果您不确定绘图项目的来源,这会有所帮助。
编辑:
要查找作为对象后代的所有属性,请使用findobj
或findall
。例如:
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 回答