1

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

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

有人知道为什么这条线不能更好地拟合数据吗?或者这仅仅是“糟糕”的平滑样条在拟合时的表现?

编辑:以为我已经很好地检查了代码,但事实证明绘图中仍然存在错误。

.mat 格式的数据。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”用于保存数据以进行绘图)。

4

0 回答 0