how to find time difference between 2 times , in milliseconds.
29 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
rnd rnd
am 23 Okt. 2018
Kommentiert: Peter Perkins
am 31 Okt. 2018
So I have a cell with a column with data like this :
.....
'18:42:45.813'
'18:42:46.028'
'18:42:46.139'
'18:42:46.359'
'18:42:46.463'
'18:43:06.558'
'18:43:06.779'
....
I want to find out the time differences lets say between 2 rows,
I tried it like this: etime(datevec(datenum(c{1,2}{1,1})), datevec(datenum(c{1,2}{2,1})))
it worked great when I did not have milliseconds, my data was like this:
.....
'18:42:25'
'18:42:36'
'18:42:46'
....
but if I add data with milliseconds it gives me a wrong answer.
I want the result in milliseconds (also in seconds if possible).
0 Kommentare
Akzeptierte Antwort
jonas
am 23 Okt. 2018
Bearbeitet: jonas
am 23 Okt. 2018
Just work with duration format.
t={'18:42:45.813'
'18:42:46.028'
'18:42:46.139'
'18:42:46.359'
'18:42:46.463'
'18:43:06.558'
'18:43:06.779'};
td = duration(t,'inputformat','hh:mm:ss.SSS');
out = milliseconds(diff(td))
ans =
215
111
220
104
20095
221
The only problem is if your time is displaying time of day, in which case you need to use datetime instead, or else you will get a large spike in your time difference at midnight.
10 Kommentare
Peter Perkins
am 31 Okt. 2018
In earlier versions, you can convert from text to duration using datevec, or using datetime+timeofday, but perhaps even easier, you can use text2duration on the FEX.
Weitere Antworten (1)
madhan ravi
am 23 Okt. 2018
https://in.mathworks.com/help/matlab/ref/duration.milliseconds.html#buovb4_-2_1 convert the time array to milliseconds as suggested in the link and then do the calculations
0 Kommentare
Siehe auch
Kategorien
Mehr zu Dates and Time finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!