我想从我在 matlab 中的绘图中提取数据。因此,我做了以下事情:
f = openfig('spline.fig');
xdata = get(gco, 'xdata');
ydata = get(gco, 'ydata');
这确实分别给了我 和 的数据点x
,但在每个点之间y
有一个步骤(例如1、1.5、2、2.5 ...)。我希望获得比这更好的数据点(例如1、1.1、1.2、1.3、1.4...),以及与这些 x 坐标对应的 y 坐标。我怎样才能做到这一点?0.5
我想从我在 matlab 中的绘图中提取数据。因此,我做了以下事情:
f = openfig('spline.fig');
xdata = get(gco, 'xdata');
ydata = get(gco, 'ydata');
这确实分别给了我 和 的数据点x
,但在每个点之间y
有一个步骤(例如1、1.5、2、2.5 ...)。我希望获得比这更好的数据点(例如1、1.1、1.2、1.3、1.4...),以及与这些 x 坐标对应的 y 坐标。我怎样才能做到这一点?0.5
你得到你的方式ydata
对我不起作用,我会使用:
open testfigure.fig
D = get(gca, 'Children');
ydata = get(D, 'YData');
我获得的ydata
包含用于绘制图形的原始 y 数据。
现在,如果您需要更精细的数据分辨率,您将不得不自己进行插值。这是如何将其插入ydata
到 0.1 分辨率的简短示例:
定义新的 x 值 xi 以找到 y 值
xi = 0:0.1:10;
插值ydata
以在 处找到新yi
值xi
:
yi = interp1(xdata, ydata, xi); %// Using the default "linear"