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.

 採用された回答

Paulo Silva
Paulo Silva 2011 年 3 月 22 日

0 投票

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

1 件のコメント

Liqing
Liqing 2011 年 3 月 22 日
Thank you very much. This is a very smart way of handling this.

サインインしてコメントする。

その他の回答 (2 件)

Matt Tearle
Matt Tearle 2011 年 3 月 22 日

2 投票

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 件のコメント

Liqing
Liqing 2011 年 3 月 22 日
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.

サインインしてコメントする。

Walter Roberson
Walter Roberson 2011 年 3 月 22 日

0 投票

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 件のコメント

Liqing
Liqing 2011 年 3 月 22 日
Thank you very much for the reply. This is another way of achieving it.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File Exchange で Data Type Conversion についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by