interp1 using method 'previous' returns an unexpected NaN?

5 Ansichten (letzte 30 Tage)
Marc Cousoulis
Marc Cousoulis am 12 Jan. 2017
Bearbeitet: Stephen23 am 12 Jan. 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?

Akzeptierte Antwort

Stephen23
Stephen23 am 12 Jan. 2017
Bearbeitet: Stephen23 am 12 Jan. 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')

Weitere Antworten (0)

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by