Extracting specific time points from two different time vectors
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi All,
I have two time vectors:
V1 = ['02-Feb-2018 08:23:42' '02-Feb-2018 08:24:42'.... '02-Feb-2018 09:10:42'] and V2 = [' 8:35 AM' ' 8:36 AM'...' 9:01 AM'].
Now, i want to identify the indices of starting (t0) and ending point (tend) of V2 (in this case t0 = ' 8:35 AM' and ' tend = 9:01 AM') in V1 and initialize a vector V3 (of length V1) which contains '1' between t0 and tend, and '0' in other time points. Since v1 and V2 are in different formats, i am not sure how to use datestr here. When i try datestr(v2), i get the following error:
Subscript indices must either be real positive integers or logicals.
Error in formatdate (line 157)
month = char(strrep(month(dtvector(:,2)), '.', '')); %remove period
0 commentaires
Réponses (2)
Peter Perkins
le 28 Mar 2018
I suspect you will be happier using datetime and the isbetween function. Actually, it's hard to tell from your description, If all of your timestamps are on the same date, isbetween is probably what you want, though you'll need to take those partial timestamps and add a date to them.
If your timestamps are on different days, and you are selecting them based on their time of day, regardless of date, then you will want to convert V1 to datetimes, V2 to durations, and construct a logical vector based on applying timeofday to the datetimes.
A more concrete example of what you have and what you want would help. Your example code based on datenums seems to imply that V1 and V2 are all on the same date.
0 commentaires
Voir également
Catégories
En savoir plus sur Time Series Events 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!