Ich habe eine Menge Punkte in 2D, für die ich den Wert kenne, und ich möchte einen kubischen Spline durch sie einfügen, um einige andere Daten mit MATLAB zu interpolieren.Warum würde Feval NaN in MATLAB zurückgeben?
Mein Code sieht so aus:
fitobject = fit(x,y,'cubicinterp');
yy=feval(fitobject,xx)
mit folgenden Eingaben:
Koordinaten
x = [...
313 3;
313 5;
313 7;
315 3;
315 5;
317 3;
319 5];
Werte
y = [...
28.0779;
28.0186;
11.6220;
16.7640;
23.7139;
-14.7882;
-20.4626];
Stützpunkten
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];
In meinem Ausgangsvektor yy
, erhalte ich mehrere NaN
Werte. Für mich sehen die Eingabedaten sauber aus (sie sind alle endliche Werte und es gibt keine NaN
). Ich bekomme nicht, was feval
veranlassen würde, NaN
zurückzugeben, wenn Daten gepasst werden. Warum konnte es nicht die bestmögliche Passform geben, auch wenn es schlecht ist? Ist mein Ansatz fehlerhaft?
Ich blätterte ein wenig und es scheint, dass die gleiche Frage ein paar Mal in Mathfors Foren gestellt wurde, aber niemand gab eine klare Antwort.
Vielen Dank im Voraus für Ihre Hilfe.
Ich habe nicht die Kurven-Toolbox. Haben Sie eine Möglichkeit, die angepasste Funktion zu untersuchen? Vielleicht sind einige der Datenpunkte, die Sie zum Bewerten der angepassten Funktion verwenden, so beschaffen, dass sie ['NaN'] ( – Schorsch
) verursachen yy = fitobject (xx) 'Syntax zu –