我有一堆2D中的点,我知道这个值,我想通过它们拟合一个三次样条来插入一些使用MATLAB的其他数据。为什么feval会在MATLAB中返回NaN
我的代码如下所示:
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'](http://www.mathworks.com/help/matlab/ref/nan.html) – Schorsch
你可以使用' yy = fitobject(xx)'语法太 –