how to find nearest date and its corresponding value !
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
pankaj mali
le 16 Oct 2019
Modifié(e) : Andrei Bobrov
le 17 Oct 2019
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 commentaires
Turlough Hughes
le 16 Oct 2019
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.
Réponse acceptée
Andrei Bobrov
le 16 Oct 2019
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 commentaires
Andrei Bobrov
le 17 Oct 2019
Modifié(e) : Andrei Bobrov
le 17 Oct 2019
[~,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');
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Propagation and Channel Models dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!