我有一些在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'};
我怎么能实现这个目标?
答案 0 :(得分:3)
在MATLAB中使用sprintf,您可以使用字段宽度说明符:
,其中
场宽: 要打印的最小字符数。可以是数字,也可以是星号(*)来引用输入列表中的参数。例如,输入列表('%12d',intmax)等效于('%* d',12,intmax)。
因此,您的时间应该看起来像“XX:XX”,如果缺少并添加冒号,则sprintf添加前导零。
感谢@Junuxx提供的确切命令:sprintf('%02i:%02i', hours, minutes)
要分开小时和分钟,你显然会花时间%100来得分和整数除以100得到小时。
从那里开始,您只需strcat
或连接["a" "b"]
两列即可获得所需的结果。