How to convert hours, minutes, seconds to seconds?

조회 수: 49 (최근 30일)
Lizan
Lizan 2014년 10월 16일
편집: Stephen23 2023년 8월 21일
Hi,
How can I return an array with
hh:min:sec
into
seconds?
For example
VarName2(1:5)
ans =
'14:54:25'
'14:54:25'
'14:54:25'
'14:54:26'
'14:54:26'
into a array with seconds?

채택된 답변

Daniel
Daniel 2014년 10월 16일
Assuming you mean seconds in the day
% initialize variables
NUM_SECONDS_PER_DAY = 86400.0;
timeStrings = {'14:54:25';'14:54:25';'14:54:25';'14:54:26';'14:54:26'};
% convert times to fractional days using datenum
timeFractionalDays = datenum(timeStrings);
% leave only the part with the most recent day fraction
timeDayFraction = mod(timeFractionalDays,1);
% multiply by number of seconds in a day
timeInSeconds = timeDayFraction .* NUM_SECONDS_PER_DAY
This produces the result
timeInSeconds =
1.0e+04 *
5.3665
5.3665
5.3665
5.3666
5.3666
  댓글 수: 8
Daniel
Daniel 2014년 10월 16일
Simply subtract the first value of the answer vector from itself.
% initialize variables
NUM_SECONDS_PER_DAY = 86400.0;
% convert times to fractional days using datenum
timeFractionalDays = datenum(VarName2);
% leave only the part with the most recent day fraction
timeDayFraction = mod(timeFractionalDays,1);
% multiply by number of seconds in a day
timeInSeconds = timeDayFraction .* NUM_SECONDS_PER_DAY;
% find answer starting from first value
timeInSeconds = timeInSeconds - timeInSeconds(1)
Lizan
Lizan 2014년 10월 16일
Thanks!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Stephen23
Stephen23 2023년 8월 21일
편집: Stephen23 2023년 8월 21일
The approach for MATLAB >=R2014b is to use the DURATION class, e.g.:
C = {'14:54:25'; '14:54:25'; '14:54:25'; '14:54:26'; '14:54:26'};
S = seconds(duration(C))
S = 5×1
53665 53665 53665 53666 53666

카테고리

Help CenterFile Exchange에서 Dates and Time에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by