%// If there's only one entity (child) in the axes:
hLine = get(gca,'Children');
%// If there's more than one child:
hChildren = findobj(gca,'Type','line');
hLine = hChildren(1); %// Or any other logic you need to pick the correct line
%// Then comes your code:
xD = get(hLine,'XData'); yD = get(hLine,'YData');
2 回答
如果我理解正确,这些是你想知道的两件事:
你有一个数字包含一些任意2d线的图,你的
x_vec, y_vec
是未知的,你想从图\轴中提取它们 .您想要获得图中使用的
xtick
和ytick
个位置 .你的代码不起作用的原因是因为你试图访问
axes
的属性,而你想要访问的是line
的属性(即图中的曲线) .要解决 first 问题,可以使用以下方法:
Manual :使用
edit plot
figure工具,您可以按以下方式访问该行的XData
和YData
属性:Programmatic :你需要找到该行的
handle
(即指针),然后在该句柄上使用你的代码(而不是在gca
上):对于 second 问题,您可以使用
gca
获取XTick
和YTick
:要获得步长,我建议只使用
diff()
.我不确定我是否理解你的问题 . 你的意思是获得曲线的x和y数据?如果是,那么也许它会帮助调查'ginput' .
例如,从图形窗口中选取10个点,您可以使用以下命令