【问题标题】:Interpolating data points in Curve Fitting Tool in Matlab 2017在 Matlab 2017 的曲线拟合工具中插值数据点
【发布时间】:2017-11-16 10:12:18
【问题描述】:
我有一组 13 个实验点,其中 X 的范围从 0 到 100 不等间隔,对应的 Y 值。使用曲线拟合工具(Interpolant,PCHIP)我可以得到一个图表,也可以使用数据得到间歇点的值光标。但是,我需要从 0 到 100 以 0.1 的相等间隔间隔的 1000 个值。如何从工具中获取这 1000 个值?在旧的 matlab 中曾经有一个“评估”选项,但我在这个中没有看到。
【问题讨论】:
标签:
matlab
interpolation
curve
【解决方案1】:
找到将拟合结果保存到工作区的选项。之后就很容易了。
x1 = (0:0.1:100)。';
y1 = 拟合曲线 (x1);
现在我觉得自己很愚蠢。
【解决方案2】:
以下是如何在脚本中获取等距插值数据:
% Your data
x = [0;4;6;10;11;13;17;23;24;34;35;37;39;40;49;58;78;82;90;94;100];
y = sin([0.51;1.15;1.19;1.86;1.92;2.32;2.74;2.81;2.83;3.44;3.93;...
4.07;4.08;4.32;4.6;4.68;4.87;4.9;4.99;5.14;5.84]*3);
% Create new equally-distant baseline
x2 = linspace(0,100,1000);
% Fit your data, compute new values of y for x2
y2 = pchip(x,y,x2);
% Plot everything
figure
hold all
plot(x,y,'kx')
plot(x2,y2,'r-');