让我们考虑给出一个情节,我没有它的x和y向量,但我想从Matlab中的图中提取它们。另外,我有兴趣知道水平轴和垂直轴(x轴和y轴)的数据增量(步长)。 我在考虑使用:
h=gca % Get current axis
X=get(h,'xdata');
Y=get(h,'ydata');
stepsize=X(2)-X(1);
但是这些命令会产生一条错误消息: xdata和ydata不是轴的可访问属性。任何建议如何找到任何给定曲线的x和y向量。
答案 0 :(得分:1)
如果我理解正确,这两件事你想知道:
x_vec, y_vec
是未知的,你想从图形\轴中提取它们。xtick
和ytick
位置。您的代码无效的原因,是因为您尝试访问axes
的属性,而您想要访问的内容是{的属性{1}}(即图中的曲线)。
要解决第一个问题,您可以使用以下方法:
手动:使用line
数字工具,您可以按以下方式访问该行的edit plot
和XData
属性:
程序化:您需要找到该行的YData
(即指针),然后在那个句柄上使用您的代码(而不是{ {1}}):
handle
对于第二个问题,您可以使用gca
获取%// 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');
和gca
:
XTick
要获得步长,我建议您只使用YTick
。
答案 1 :(得分:0)
我不确定我是否理解你的问题。你的意思是获得曲线的x和y数据?如果是,那么也许它可以帮助调查“输入”#。
例如,从图形窗口中选取10个点,您可以使用以下命令
[x,y] = ginput(10)