0

私はExcelで私に与えられたいくつかのデータを持っています、そして時間形式はかなり混乱しています。の最初の列はDateTimeですが、HH:MMが正しくなく、2番目の列は1日の正しい時間HH:MMです。

time = {'01/01/2000 00:00',num2str(2300);
    '01/01/2000 00:00',num2str(2400);
    '01/01/2000 00:00',num2str(10);
    '01/01/2000 00:00',num2str(100)};

ただし、時刻が深夜を超えると、00:10ではなく10になり、01:00は100になります。これらを正しい形式に変更するにはどうすればよいですか?つまり、上記の例から、結果は次のようになります。

time = {'01/01/2000 23:00';
    '01/01/2000 24:00';
    '01/01/2000 00:10';
    '01/01/2000 01:00'};

どうすればこれを達成できますか?

4

1 に答える 1

3

MATLABでsprintfを使用すると、フィールド幅指定子を使用できます。

sprintf引数

どこ

フィールド幅:印刷する最小文字数。数値、または入力リストの引数を参照するためのアスタリスク(*)を指定できます。たとえば、入力リスト('%12d'、intmax)は('%* d'、12、intmax)と同等です。

したがって、時間はすべて「XX:XX」のようになり、先頭のゼロが欠落している場合はsprintfによって追加され、コロンが追加されます。

正確なコマンドを提供してくれた@Junuxxに感謝します。sprintf('%02i:%02i', hours, minutes)

時間と分を区切るには、明らかに時間%100を実行して分を取得し、整数を100で割って時間を取得します。

そこから、2つの列を単純にstrcatまたは連結["a" "b"]して、目的の結果を取得します。

于 2012-10-26T14:52:12.700 に答える