我想从matlab中绘制的图表中提取数据.因此,我做了以下事情:
f = openfig('spline.fig');
xdata = get(gco, 'xdata');
ydata = get(gco, 'ydata');
Run Code Online (Sandbox Code Playgroud)
这确实给出了数据点x
和数据点y
,但是0.5
在每个点之间有一个步骤(例如 1,1.5,2,2.5 ......).我希望获得比这更精细的数据点(例如 1,1,1.1,1.2,1.3,1.4 ......),以及相应的y坐标到这些x坐标.我怎样才能做到这一点?
你得到你的方式ydata
不适合我,我会用:
open testfigure.fig
D = get(gca, 'Children');
ydata = get(D, 'YData');
Run Code Online (Sandbox Code Playgroud)
将ydata
获得的I包含用于绘制图中的原始y数据.
现在,如果您需要更精细的数据分辨率,则必须自己进行插值.以下是如何将其插值ydata
为0.1 的简短示例:
定义新的x值xi以查找y值
xi = 0:0.1:10;
Run Code Online (Sandbox Code Playgroud)插值ydata
以找到新yi
值xi
:
yi = interp1(xdata, ydata, xi); %// Using the default "linear"
Run Code Online (Sandbox Code Playgroud)您应该阅读您想要使用的方法类型(例如 最近邻居,样条曲线),这取决于您的数据和要求.
归档时间: |
|
查看次数: |
1183 次 |
最近记录: |