Ho un sacco di punti in 2D per cui conosco il valore, e mi piacerebbe inserire una spline cubica attraverso di essi per interpolare altri dati usando MATLAB.Perché dovrebbe restituire NaN in MATLAB
mio codice è simile:
fitobject = fit(x,y,'cubicinterp');
yy=feval(fitobject,xx)
con i seguenti ingressi:
Coordinate
x = [...
313 3;
313 5;
313 7;
315 3;
315 5;
317 3;
319 5];
Valori
y = [...
28.0779;
28.0186;
11.6220;
16.7640;
23.7139;
-14.7882;
-20.4626];
interpolazione punti
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];
Nella mia uscita vettore yy
, ottengo diversi NaN
valori. Per me, i dati di input sembrano puliti (sono tutti valori finiti e non c'è NaN
). Non capisco che cosa potrebbe causare feval
per restituire NaN
durante l'adattamento dei dati. Perché non potrebbe dare la migliore forma possibile, anche se è cattiva? C'è un errore nel mio approccio?
Ho sfogliato un po 'e sembra che la stessa domanda sia stata posta un sacco di volte sui forum di matematica, ma nessuno ha dato una risposta chiara.
Grazie in anticipo per il vostro aiuto.
Non ho la toolbox adatta alla curva. Avete un modo per esaminare la funzione adattata? Forse alcuni dei punti dati che utilizzi per valutare la funzione adattata sono tali da causare ['NaN'] (http://www.mathworks.com/help/matlab/ref/nan.html) – Schorsch
Puoi usare' yy = fitobject (xx) 'anche la sintassi –