在matlab中将时间从凌晨1点转换为下午1点

在matlab中将时间从凌晨1点转换为下午1点,matlab,Matlab,我在excel中有一个日期集,它以以下格式存储日期 12:59 1:00 当它读入matlab时,它被表示出来 0.5410 0.0417 这导致图形打印不正确。我意识到第二个输入应该是13:00,而不是1:00。在绘制图形之前,我如何在matlab中预处理这些信息,确切地说,13:00到23:59的值是多少?如何在matlab中检查它?看起来您从Excel导入的内容将其作为 我认为您需要了解如何从Excel导入日期。由于Excel和Matlab处理日期的方式不同,这可能会有问题。看看这

我在excel中有一个日期集,它以以下格式存储日期

12:59  
1:00
当它读入matlab时,它被表示出来

0.5410
0.0417

这导致图形打印不正确。我意识到第二个输入应该是13:00,而不是1:00。在绘制图形之前,我如何在matlab中预处理这些信息,确切地说,13:00到23:59的值是多少?如何在matlab中检查它?

看起来您从Excel导入的内容将其作为

我认为您需要了解如何从Excel导入日期。由于Excel和Matlab处理日期的方式不同,这可能会有问题。看看这个

我希望你也需要使用这个函数

例如,将12小时格式的时间01:00 pm转换为24小时格式

datestr('01:00 PM','HH:MM')
编辑:

或者交替地


这将在01:00的基础上增加12小时,使之成为13:00。

作为一种解决方法,您可以尝试以下转换,从0-1范围内的时间数组
tim
开始:

tim2  = tim*24; 
ar = zeros(1,length(tim2));
ar(diff([0 tim2])<0) = 1;
tim2 = (cumsum(ar)*12 + tim2)/24;
tim2=tim*24;
ar=零(1,长度(tim2));

ar(diff([0 tim2])正如您所知,所有下午的工作都是在6点之前完成的,而早上的工作都是在6点之前完成的,因此很容易通过后处理进行修复:

例如:

x = [0.5410 0.0417];
idx = x<=6/24; %Or use 7 for example if you want to be more safe
x(idx) = x(idx)+0.5
x=[0.5410 0.0417];

idx=X当你看到时间时,你如何知道它是上午还是下午?根据这一点,你可以搜索程序修复程序。它是从一台从上午11点到下午6点办公时间收集数据的设备上获取的,所以我知道应该是下午1点。datestr(0.0417)返回凌晨1点。我如何知道下午1点的值?有了它,我可以修复它。
x = [0.5410 0.0417];
idx = x<=6/24; %Or use 7 for example if you want to be more safe
x(idx) = x(idx)+0.5