how to find time difference between 2 times , in milliseconds.

81 ビュー (過去 30 日間)
rnd rnd
rnd rnd 2018 年 10 月 23 日
コメント済み: Peter Perkins 2018 年 10 月 31 日
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).

採用された回答

jonas
jonas 2018 年 10 月 23 日
編集済み: jonas 2018 年 10 月 23 日
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 件のコメント
rnd rnd
rnd rnd 2018 年 10 月 24 日
Nvm , I just use milliseconds (td(5) - td(1)) :) thank you so much , you helped me out a lot.
Peter Perkins
Peter Perkins 2018 年 10 月 31 日
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.

サインインしてコメントする。

その他の回答 (1 件)

madhan ravi
madhan ravi 2018 年 10 月 23 日
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

カテゴリ

Help Center および File ExchangeDates and Time についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by