interp1 - error grid vectors must contain unique points

2 Ansichten (letzte 30 Tage)
Wessel ter Laare
Wessel ter Laare am 12 Apr. 2019
Kommentiert: Wessel ter Laare am 12 Apr. 2019
Dear All,
In my script I have two date arrays, where one is larger then the other. I am trying to determine the absolute time difference in hours between the timestamp from dataset 1 and the nearest date of dataset 2.
I use function interp1(x, y, xq, 'nearest'), and run into error message saying; 'The grid vectors must contain unique points'.
Code:
BuoyTimeNearest = abs(hours(Date - interp1(DateBuoy, DateBuoy, Date, 'nearest')));
Where Date and DateBuoy are both datetime arrays, Data = 133191 x 1, and DateBuoy = 13253 x 1.
I have plotted the data against array with step 1, and cannot find any duplicate points.
Date (Just datetime at 0.5hr interval)
DateBuoy (some missing datetimes but no duplicate values).
If I change the code to include unique:
BuoyTimeNearest = abs(hours(Date - interp1(unique(DateBuoy), unique(DateBuoy), Date, 'nearest')));
It does work, but run into trouble further along the script. And had been using the script for a while without any issues before.
Pleased to hear your suggestions.
Thanks!
  6 Kommentare
Adam
Adam am 12 Apr. 2019
numel( unique( DateBuoy ) )
gives an answer 2 fewer than the total number of points in DateBuoy so 2 of the values in there somewhere are non-unique.
Wessel ter Laare
Wessel ter Laare am 12 Apr. 2019
Yep. That dit the trick! Thanks a lot.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Line Plots finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by