I have a vector of date times in 'HH:MM:SS' format which I want to convert to elapsed time. Each cell is a 1 minute increment from the previous.
Right now I'm doing a for loop that loops the size of the entire vector, and does x(i)-x(1) to calculate the elapsed time (in minutes).
This seems kind of cumbersome code, and I feel like there's an easier way. Any recommendations?

 Akzeptierte Antwort

Thomas
Thomas am 25 Apr. 2012

1 Stimme

your cell array
c={'12:00:00' '12:00:01' '12:00:02' '12:00:03'}
d=datenum(c,'HH:MM:SS')
out=d-d(1);
time_sec=out*86400

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 25 Apr. 2012

0 Stimmen

datenum() the cell array of date strings to get out a vector of serial date numbers. Subtract the first value from the array to get the elapsed times in days. Multiply by 24*60 to get elapsed times in minutes. No loop should be needed.

Kategorien

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by