interp1 using method 'previous' returns an unexpected NaN?

5 ビュー (過去 30 日間)
Marc Cousoulis
Marc Cousoulis 2017 年 1 月 12 日
編集済み: Stephen23 2017 年 1 月 12 日
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?

採用された回答

Stephen23
Stephen23 2017 年 1 月 12 日
編集済み: Stephen23 2017 年 1 月 12 日
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')

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeInterpolation についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by