How can I convert a double array into a timestamp array?

I have an array of double like:
ora: [737426.687937060 737426.687937141 737426.687937176 etc....]
I want to get an array like:
time:[16:30:37:762 16:30:37:769 16:30:37:772]
How can i do??

 Akzeptierte Antwort

Stephan
Stephan am 26 Feb. 2019
Bearbeitet: Stephan am 26 Feb. 2019

2 Stimmen

Hi,
use:
B = datestr(A, 'HH:MM:SS.FFF')
B =
3×12 char array
'16:30:37.762'
'16:30:37.769'
'16:30:37.772'
to get it as datestring - or (better):
C = datetime(datestr(A, 'HH:MM:SS.FFF'),'InputFormat','HH:mm:ss.SSS','Format','HH:mm:ss.SSS')
C =
3×1 datetime array
16:30:37.762
16:30:37.769
16:30:37.772
to get it as datetime-type.
Best regards
Stephan

4 Kommentare

There's no need to take a detour through datestr to get these as a datetime array.
A = [737426.687937060 737426.687937141 737426.687937176 ]
D = datetime(A, 'ConvertFrom', 'datenum', 'Format', 'HH:mm:ss.SSS')
Alternately if you want them as a duration (time after midnight) you can do this using dateshift.
D2 = D - dateshift(D, 'start', 'day');
D2.Format = 'hh:mm:ss.SSS'
Nice!
thank you so much!
Alternatively, timeofday(D) would also convert to a duration.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by