MATLAB Answers

using interp1 'nearest' and 1 value is missing

1 view (last 30 days)
hey,
i have 2 datetime arrays and im trying to find the nearest date and time (prior) from one array to another using interp1
my line of code is:
nearest= interp1(refDatetime, 1:length(refDatetime),expDatetime, 'nearest');
refDateTime:
'03-Feb-2020 09:28:38' '03-Feb-2020 10:49:51' '03-Feb-2020 11:02:04' '03-Feb-2020 11:04:18' '03-Feb-2020 11:17:35' '03-Feb-2020 11:20:28' '03-Feb-2020 11:25:41'
expDatetime:
'03-Feb-2020 11:22:39' '03-Feb-2020 11:28:40'
nearest:
6 NaN
interp1 always gives me NaN for the last exp date time (i run the code with several inputs giving different values for these 2 arrays).
the value i expect is 7 but instead its NaN
any idea what i do wrong?

  0 Comments

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 7 Aug 2020
nearest= interp1(refDateTime, 1:length(refDateTime),expDateTime, 'nearest', 'extrap')
The interpolation mode you were using, linear interpolation (the default) returns nan for anything outside of the range of the input independent variable; you have to turn on extrapolation.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by