how to find nearest date corresponding value ?
9 ビュー (過去 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!