how to find nearest date and its corresponding value !
8 ビュー (過去 30 日間)
古いコメントを表示
Hi,
I have one date/time array(A). and another mat file (AOD) which has first column of date/time and second column has values.
I need find date/time from (AOD) which is nearest to date/time of (A) and the correspoding values from AOD to that date.
and if it find two dates near to date/time from A(for eg two minutes earlier and two minutes later ). it should take earilier datetime !
In my result matrix I should have first column of date/time from file (A) and second column should be values from AOD which were measured at time somewhere near to date/time first colum !
i hope you understand my question. I am adding those two files here.
pardon my english !
2 件のコメント
Turlough Hughes
2019 年 10 月 16 日
Do you want to round the data to the nearest minute in that case?
If you take times in seconds there are no cases where a time in A is midway between two times in AOD.
pruth
2019 年 10 月 17 日
what if i just want to round the data to nearest minute !! How can we do it ?
採用された回答
Andrei Bobrov
2019 年 10 月 16 日
load('date.mat');
load('AOD.mat');
d = datetime(A,'ConvertFrom','datenum');
[lo,i] = ismembertol(AOD_440(:,1),A,1,'DataScale',1/8/60);
TT_out = array2timetable(AOD_440(lo,2),'RowTimes',d(i(lo)),'VariableNames',{'data'});
3 件のコメント
Andrei Bobrov
2019 年 10 月 17 日
編集済み: Andrei Bobrov
2019 年 10 月 17 日
[~,i] = min(abs(AOD_440(:,1) - A(:)));
d = datetime(A,'ConvertFrom','datenum');
TT_out = array2timetable(AOD_440(i,2),'RowTimes',d,'VariableNames',{'data'});
or
T = timetable(AOD_440(:,2),'RowTimes',datetime(AOD_440(:,1),'ConvertFrom','datenum'));
d = datetime(A,'ConvertFrom','datenum');
TT_out = retime(T,d,'nearest');
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Dates and Time についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!