How to convert string to time?

Sorry for the silly question, but could anyone show me how to convert a string, such as, '04:55' to numerical values of hour and minute?
Thank you very much.

 Réponse acceptée

Paulo Silva
Paulo Silva le 22 Mar 2011

0 votes

str2num(strrep('04:55',':',''))

1 commentaire

Liqing
Liqing le 22 Mar 2011
Thank you very much. This is a very smart way of handling this.

Connectez-vous pour commenter.

Plus de réponses (2)

Matt Tearle
Matt Tearle le 22 Mar 2011

2 votes

If you want an actual decimal minute value:
x = '04:55'
y = str2double(regexp(x,':','split'))
z = y*[1;1/60]
(Leave off the last line if you just want minutes and seconds as separate array elements.)

1 commentaire

Liqing
Liqing le 22 Mar 2011
It's very nice to see the use of regexp to split the string into two values.
This could be a even better solution.
Thank you very much.

Connectez-vous pour commenter.

Walter Roberson
Walter Roberson le 22 Mar 2011

0 votes

Is the string fixed width, with a leading 0? If so then,
H = T(1) - '0' * 10 + T(2) - '0';
M = T(4) - '0' * 10 + T(5) - '0';
Or
H = str2num(T(1:2));
M = str2num(T(4:5));
Or
H = [10 1] * (T(1:2)-'0').';
M = [10 1] * (T(4:5)-'0').';

1 commentaire

Liqing
Liqing le 22 Mar 2011
Thank you very much for the reply. This is another way of achieving it.

Connectez-vous pour commenter.

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by