I am trying to fit a line (to a blue curve in the image) using spline, pchip or makima function, however, theses function do not work properly (red line).

2 次查看(过去 30 天)

回答(1 个)

John D'Errico
John D'Errico 2022-10-1
编辑:John D'Errico 2022-10-1
They don't work, because your curve does not describe a SINGLE valuesd function y(x). That is, for many values of x, there are TWO values of y. You CANNOT use spline, makima or pchip to interpolate those points directly.
However, you CAN use tools that are designed to fit such a general space curve. For example, download my interparc from the file exchange. Interparc actually knows how to fit a curve to such a path in the plane, and it can apply either pchip or spline to such a curve properly. (Not makima, since makima was not part of MATLAB when I wrote the tool.)
Find interparc here:
If you have the curve fitting toolbox, it has cscvn, which can also fit such a space curve.

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by