interp1 using method 'previous' returns an unexpected NaN?

5 visualizaciones (últimos 30 días)
Marc Cousoulis
Marc Cousoulis el 12 de En. de 2017
Editada: Stephen23 el 12 de En. de 2017
x = [1 2 4]; v = [17 100 17]; xq = 1:5; vq = interp1(x,v,xq,'previous');
vq = 17 100 100 17 NaN
Why is vq(5) not equal to 17?

Respuesta aceptada

Stephen23
Stephen23 el 12 de En. de 2017
Editada: Stephen23 el 12 de En. de 2017
This is clearly explained in the interp1 documentation, in the section "Extrapolation strategy":
  • If you specify the 'pchip' or 'spline' interpolation methods, then the default behavior is 'extrap'.
  • All other interpolation methods return NaN by default for query points outside the domain.
Your query point is outside of the input domain (from 1 to 4), so NaN is the correct and documented output.
As the documentation states, if you want to extrapolate, then you need to specify this:
vq = interp1(x,v,xq,'previous','extrap')

Más respuestas (0)

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by