Time conversion question

I have several days of data that I am analyzing. There is a time stamp of the form '(DDD)HH:MM:SS.SSSSSS' day, hours, min, sec. Is there an easy of converting this vector to just hours? The date is from the system time of the PC, I just want to plot keep track of a total delta time from the beginning of the data collection to the end. help.

回答 (2 件)

Andreas Goser
Andreas Goser 2011 年 1 月 28 日

1 投票

Usually, I would prefer the DATEVEC function, but as far as I see, this is not working here, as no month information is given. A very powerful approach is then REGEXP (or FINDSTR, etc.). All in all, with this easy format, the easiest approach is:
dt = datestr(now, '(DDD)HH:MM:SS.FFF')
str2num(dt(6:7))
Sebastian
Sebastian 2011 年 1 月 28 日

0 投票

I would use the datenum() function to convert your time stamps to a serial date (see "doc datenum" for details). Then I would subtract the minimun of that vector and finally multiply by 24. This would give you the time in hours since the measurement start.
% generate some test data, in your case d would
% be created using the datenum function
d = sort(now+rand(10,1)*2);
d_hours = (d-min(d))*24;
% display for verification
disp([datestr(d) repmat(' -> ',10,1) num2str(d_hours)])

カテゴリ

ヘルプ センター および File ExchangeDates and Time についてさらに検索

タグ

質問済み:

2011 年 1 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by