【发布时间】:2013-05-24 21:01:22
【问题描述】:
我有一堆二维点,我知道它们的值,我想通过它们拟合三次样条,以使用 MATLAB 插入一些其他数据。
我的代码如下:
fitobject = fit(x,y,'cubicinterp');
yy=feval(fitobject,xx)
使用以下输入:
坐标
x = [...
313 3;
313 5;
313 7;
315 3;
315 5;
317 3;
319 5];
价值观
y = [...
28.0779;
28.0186;
11.6220;
16.7640;
23.7139;
-14.7882;
-20.4626];
插值点
xx = [...
313 3;
313 4;
313 5;
313 6;
313 7;
313 8;
313 9;
314 3;
314 5;
314 7;
315 3;
315 4;
315 5;
315 6;
315 7;
316 3;
316 5;
317 3;
317 4;
317 5;
318 3;
319 5;
319 6;
319 7;
320 5];
在我的输出向量yy 中,我得到了几个NaN 值。对我来说,输入数据看起来很干净(它们都是有限值,没有NaN)。我不明白在拟合数据时会导致feval 返回NaN 的原因。为什么即使它很糟糕,它也不能提供最佳的适合度?我的方法有错误吗?
我浏览了一下,似乎同一个问题在mathworks论坛上被问了很多次,但没有人给出明确的答案。
提前感谢您的帮助。
【问题讨论】:
-
我没有曲线拟合工具箱。你有办法检查拟合函数吗?也许您用来评估拟合函数的一些数据点会导致
NaN -
你也可以使用
yy=fitobject(xx)语法
标签: matlab interpolation curve-fitting spline