How to do 'previous' interp1 behavior in 2014a?

Hello,
I used interp1 in 2015b recently, and made use of the 'previous' interpolation function which will just return the YY value of the previous XX point. In 2014a however, when run using 'previous', if you actually look at the code it runs using 'pchip' instead as it only matches on the first letter! It seems that 'previous' is missing from earlier MATLAB versions.
interp1(X,Y,XX,'previous') is fast enough for my application, although I now need to use it in 2014a where it seems to be unavailable. Can anybody suggest a fast alternative algorithm? Any solution I have come up with seems horrendously slow compared to interp1.
Thanks!

댓글 수: 1

Steven Lord
Steven Lord 2016년 4월 20일
FYI the 'previous' and 'next' options for interp1 were introduced in release R2014b, as indicated in the third item in the Mathematics section of the Release Notes for that release.

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

 채택된 답변

Walter Roberson
Walter Roberson 2016년 4월 20일

0 개 추천

Two output version of histc(), use the resulting bin numbers to index the edge list, and that will correspond to "previous".

댓글 수: 3

I'm not sure I understand, could you give me a super-quick example in terms of X, Y and XX?
Thanks for your help
Assuming that X is in strictly ascending order,
[counts, binnumbers] = histc(XX, X);
y_at_x_no_later = Y(binnumbers);
That's great, I never would have thought of doing it that way, thanks!

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

제품

질문:

2016년 4월 20일

댓글:

2016년 4월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by