I have a UTC Time stamp on my acquired data in format :
hh:mm:ss.SSSS
This data is taken at 20 ms and I need it to convert to duration in seconds and make a time series of it taking into account the start time and end time (even milli seconds taken into account)
I am currently using :
Dp = duration(hh,mm:mm,ss:ss);
tp= (minutes(D))*60;
Guidance required to make it into a time series which is generic in way that milli seconds are taken into account as well.

 채택된 답변

Steven Lord
Steven Lord 2020년 11월 19일

1 개 추천

s = '12:34:56.789';
formatSpec = 'hh:mm:ss.SSS';
d = duration(s, 'InputFormat', formatSpec, 'Format', formatSpec)
d = duration
12:34:56.789

댓글 수: 2

Thanks !!
The table A comprises of my time data in UTC in the 'hh:mm:ss.SS' format and I have used following script to make the time data into time series in seconds:
Dpt = table2array(A);
formatSpec = 'hh:mm:ss.SS';
dp = duration(Dpt, 'InputFormat', formatSpec, 'Format', formatSpec);
Tp = hours(dp)*3600+(minutes(dp))*60 +seconds(dp);
Just call seconds.
s = '12:34:56.789';
formatSpec = 'hh:mm:ss.SSS';
d = duration(s, 'InputFormat', formatSpec, 'Format', formatSpec)
d = duration
12:34:56.789
format longg
dInSeconds = seconds(d)
dInSeconds =
45296.789
To check we can perform the calculations manually. To avoid the "magic numbers" 3600 and 60 I use the capability of MATLAB to convert between double and duration arrays.
secondsPerHour = seconds(hours(1)); % 3600
secondsPerMinute = seconds(minutes(1)); % 60
dInSeconds2 = secondsPerHour*12+secondsPerMinute*34+56.789
dInSeconds2 =
45296.789
Looks pretty good to me.

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Programming에 대해 자세히 알아보기

제품

릴리스

R2020a

태그

질문:

2020년 11월 19일

댓글:

2020년 11월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by