Matlab中数据的范围和增量

时间:2014-08-10 06:41:09

标签: plot matlab matlab-figure figure curve

让我们考虑给出一个情节,我没有它的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向量。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,这两件事你想知道:

  1. 你有一个包含某个任意2d行的图的图形,你的x_vec, y_vec是未知的,你想从图形\轴中提取它们。
  2. 您希望获得图中使用的xtickytick位置。

  3. 您的代码无效的原因,是因为您尝试访问axes的属性,而您想要访问的内容是{的属性{1}}(即图中的曲线)。

    要解决第一个问题,您可以使用以下方法:

    手动:使用line数字工具,您可以按以下方式访问该行的edit plotXData属性:

    How to get to a line's XData manually

    程序化:您需要找到该行的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)