从绘图中提取更精细的数据点

时间:2013-09-11 07:43:36

标签: matlab

我想从matlab中绘制的图表中提取数据。因此,我做了以下事情:

f = openfig('spline.fig');
xdata = get(gco, 'xdata');
ydata = get(gco, 'ydata');

这确实分别给出了xy的数据点,但每个点之间的步长为0.5例如 1,1.5, 2,2.5 ......)。我希望得到比这更精细的数据点(例如 1,1.1,1.2,1.3,1.4 ......),以及相应的y坐标到这些x坐标。我怎么能这样做?

1 个答案:

答案 0 :(得分:6)

你获得ydata的方式对我不起作用,我会用:

open testfigure.fig 
D = get(gca, 'Children');
ydata = get(D, 'YData'); 

我获得的ydata包含用于绘制图形的原始y数据。

现在,如果您需要更精细的数据分辨率,您必须自己进行插值。 以下是如何将此ydata插值为0.1:

的简短示例
  1. 定义新的x值xi以查找

    的y值
    xi = 0:0.1:10;
    
  2. ydata处插入yi以查找新的xi值:

    yi = interp1(xdata, ydata, xi); %// Using the default "linear"
    
  3. 您应该阅读您想要使用的方法(例如 nearest neighbourspline),这取决于您的数据和要求。