interp1 - error grid vectors must contain unique points

6 次查看(过去 30 天)
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 个评论
Adam
Adam 2019-4-12
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.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Dates and Time 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by