我有一堆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)'語法太 –