我在 excel 中有一个日期集,它以以下格式存储日期
12:59
1:00
当它被读入matlab时,它被表示为
0.5410
0.0417
这导致了不正确的图表绘制。我意识到第二个输入应该是 13:00,而不是 1:00。在绘制图形之前,如何在 matlab 中预处理这些信息,确切地说,代表 13:00 到 23:59 的值是多少?如何在matlab中检查它?
我在 excel 中有一个日期集,它以以下格式存储日期
12:59
1:00
当它被读入matlab时,它被表示为
0.5410
0.0417
这导致了不正确的图表绘制。我意识到第二个输入应该是 13:00,而不是 1:00。在绘制图形之前,如何在 matlab 中预处理这些信息,确切地说,代表 13:00 到 23:59 的值是多少?如何在matlab中检查它?
如您所知,所有下午的工作都是在 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
请注意,如果您的 excel 文件确实包含 AM-PM 信息,您可能更愿意进行预处理。(以防人们在办公时间以外工作)。
作为一种解决方法,您可以尝试以下转换,从tim
0-1 范围内的时间数组开始:
tim2 = tim*24;
ar = zeros(1,length(tim2));
ar(diff([0 tim2])<0) = 1;
tim2 = (cumsum(ar)*12 + tim2)/24;
确保测试它,尤其是在 12pm-1am 和 12am-1pm 时间