私は値を知っている2Dの点をたくさん持っており、MATLABを使って周りの他のデータを補間するために3次スプラインをフィットさせたいと思います。次の入力で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
を返す原因になりません。なぜそれが悪い場合でも、最高のフィットを与えることができませんでしたか?私のアプローチに誤りがありますか?
私は少し閲覧しましたが、同じ質問が数学フォーラムで何度も尋ねられたようですが、誰も明確な答えを出していないようです。
ご協力いただきありがとうございます。
カーブフィッティングツールボックスはありません。フィットした関数を調べる方法はありますか?おそらく、フィット関数を評価するために使用するデータポイントのいくつかは、[NaN](http://www.mathworks.com/help/matlab/ref/nan.html)を引き起こすようなものでしょう。 – Schorsch
' yy = fitobject(xx) 'も構文 –