在 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 大小应该会提高样条曲线的平滑度。
我面临以下困境。
"Natural" or periodic interpolating cubic spline curve (cscvn
) 允许我拟合通过所有控制点的插值样条曲线。然而,在我的问题中,数据点是嘈杂的,所以插值样条曲线有很多之字形。
所以我想也许我需要一个不一定通过所有点的近似(而不是插值)样条曲线。然后我遇到了 cubic smoothing spline (csaps
).
现在曲线确实更平滑了,但是当我在一个 x 值周围有多个 y 值时它会出现问题。所以拟合结果并不是真的"correct".
怎样才能做到顺滑又"correct"合身?
你应该取最大的 y 值,仅此而已。
或者,如果您认为嘈杂的一端是正确的,您应该扩大 bin 大小(可变 bin 大小)。这将导致良好的样条曲线,但曲线会下降。
这取决于你认为什么是正确的。无论如何,在曲线的 "smooth" 部分(<200)也扩大 bin 大小应该会提高样条曲线的平滑度。