0

我有一些在 excel 中提供给我的数据,时间格式相当混乱。的第一列是 DateTime,但 HH:MM 不正确,第二列是一天中正确的小时 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)

要分隔小时和分钟,您显然会使用 time % 100 来获得分钟,然后用整数除以 100 来获得小时。

从那里,您可以简单地strcat或连接["a" "b"]您的两列以获得您想要的结果。

于 2012-10-26T14:52:12.700 回答