曲线拟合Matlab表现不佳

时间:2017-04-10 14:33:51

标签: matlab curve-fitting spline robustness

我目前正在尝试使用Matlabs robust fit page中建议的平滑样条拟合的稳健版本。但是当我绘制结果(见下文)时,看起来这条线似乎不符合趋势。

我使用平滑样条曲线来拟合1e-7的平滑参数,因为我的目标是只有一个微弱的弯曲线(就像你在图片中看到的那样,但它实际上应该适合数据)。

任何人都知道为什么这条线不能更好地适应数据?或者这只是“差”平滑样条是如何拟合的?

编辑:我以为我已经对代码进行了很好的检查,但结果显示在绘图中仍然存在错误。

Data in .mat format。 Isamples是ydata,runorder_sample是xdata。

这是我代码的一小部分:

%First pre fit
xdata = runorder;
ydata = I(i,:)';
fit1 = fit(xdata, ydata, 'smoothingspline','SmoothingParam', smoothingParam);
fdata = feval(fit1, xdata); %data points in fited curve
idx = abs(fdata-ydata) > 1.5*std(ydata); %index without outliers
outliers{i} = excludedata(xdata, ydata, 'indices', idx);
%real fit
[f{i}, ~, out] = fit(xdata, ydata, 'smoothingspline',...
    'SmoothingParam', smoothingParam, 'exclude', outliers{i});

(我在循环中对矩阵的所有行进行,因此“i”用于保存绘图数据)。

0 个答案:

没有答案