interp1 using method 'previous' returns an unexpected NaN?

6 views (last 30 days)
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?

Accepted Answer

Stephen23
Stephen23 on 12 Jan 2017
Edited: Stephen23 on 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')

More Answers (0)

Categories

Find more on Interpolation in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

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

Start Hunting!