필터 지우기
필터 지우기

griddedInterpolant (via e.g. interp1) bug with NaNs?

조회 수: 11 (최근 30일)
Karl
Karl 2013년 3월 12일
편집: madhan ravi 2019년 1월 6일
I hope I've done due diligence searching for the source of this behavior; I haven't seen this question asked or answered.
Is interp1 with method 'linear' correct in its sensitivity to NaN order when basis and interpolant points are equal?
The plot generated by the following code demonstrates that, although the value for x=2 is present in the source data y, it is returned as NaN by the interpolant for xi=2.
x = 1:5;
y = [2,1,NaN,1,2];
xi = 1:0.5:5;
yi = interp1(x,y,xi,'linear');
plot(x,y,'.-k');hold on;
plot(xi,yi,'s-r'); hold off
Is this the expected behavior? In looking at the interp1 code, it seems that the fault, if it exists, may lie within griddedInterpolant.
  댓글 수: 1
Walter Roberson
Walter Roberson 2013년 3월 12일
Behavior with a NaN is not defined in the documentation.

댓글을 달려면 로그인하십시오.

답변 (3개)

dominik
dominik 2013년 5월 30일
Hey, I have the same problem: I define a griddedinterpolant IP over a grid G and the values V. whenever I evaluate IP at a gridpoint x that has an adjacent gridpoint y for which V(y) = NaN, I get IP(x)=NaN, even though V(x) is not NaN. Can that be avoided? I Use matlab 2012a.

Trevor Harris
Trevor Harris 2018년 4월 10일
Seems as if this answer still isn't solved. I'm in 2017b and am having the same problem. As you can see by the attached screenshot, the value for 300 does indeed exist, but when I reference it, I get a NaN. Any idea why this behaviour exists?
Trevor

Vladimir Kazei
Vladimir Kazei 2019년 1월 6일
편집: madhan ravi 2019년 1월 6일
You can use fillmissing(y, 'linear') since 2016b version

카테고리

Help CenterFile Exchange에서 Multirate Signal Processing에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by