如何直接从Matlab命令窗口获取我在绘图上绘制的对象(例如箭头,矩形或者sim。)的位置(即坐标)?
答案 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
(“获取当前对象”)函数,它提供您绘制或手动单击的最后一个项目的句柄。如果您不确定所绘制项目的来源,这可能会有所帮助。
编辑:
要查找作为对象后代的所有属性,请使用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')
(据推测,最后一个例子可以通过正确设计的正则表达式来改进,但我现在似乎无法正常工作。)