how to find nearest date corresponding value ?
17 次查看(过去 30 天)
显示 更早的评论
Hi, i am really stuck here and can not move ahead !
i have written this code to match the date which works fine as expected.
load('date.mat ');
load('AOD.mat ');
N = AOD_440(:,1);
V = A(:,1);
B = repmat(N,[1 length(V)])
[minValue,closestIndex] = min(abs(B-V'));
closestValue = N(closestIndex);
but here AOD_440 has second column which has some values. so when above code is finding its closest date it should put the corresponding value in second column !
how can we just update the above code ?
or do I need to write different method code ?
i hope you understand the question !
2 个评论
Sebastian Bomberg
2019-10-17
Have you considered working with timetables? That way you would not have to deal with repmat to find the closest dates.
I presume A and AOD_440(:,1) are proper dates encoded in a datenum fashion.
sampleTime = datetime(AOD_440(:,1),'ConvertFrom','datenum');
queryTime = datetime(A,'ConvertFrom','datenum');
TT = timetable(AOD_440(:,2),'RowTimes',sampleTime)
TT2 = retime(TT,queryTime,'nearest')
If you wanted the timestamp of the samples nearest to the queryTimes you can add sampleTime as another variable to the timetable.
采纳的回答
Jos (10584)
2019-10-17
Does this return what you want?
R = AOD_440(closestIndex, [1 2]) % select first (date?) and second (values?) columns
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Time Series Objects 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!