在 MATLAB 中使用 cscvn 平滑样条曲线?

Smooth spline curve with cscvn in MATLAB?

我面临以下困境。

"Natural" or periodic interpolating cubic spline curve (cscvn) 允许我拟合通过所有控制点的插值样条曲线。然而,在我的问题中,数据点是嘈杂的,所以插值样条曲线有很多之字形。

所以我想也许我需要一个不一定通过所有点的近似(而不是插值)样条曲线。然后我遇到了 cubic smoothing spline (csaps).

现在曲线确实更平滑了,但是当我在一个 x 值周围有多个 y 值时它会出现问题。所以拟合结果并不是真的"correct".

怎样才能做到顺滑又"correct"合身?

你应该取最大的 y 值,仅此而已。

或者,如果您认为嘈杂的一端是正确的,您应该扩大 bin 大小(可变 bin 大小)。这将导致良好的样条曲线,但曲线会下降。

这取决于你认为什么是正确的。无论如何,在曲线的 "smooth" 部分(<200)也扩大 bin 大小应该会提高样条曲线的平滑度。