如何在MATLAB中将日期时间设置为5的倍数?

时间:2017-01-11 19:49:52

标签: matlab datetime

我有约会

time1 = '03-Apr-2004 00:15:00'
aTime = datenum(time1)

time2 = datestr(addtodate(aTime, -53.1*60, 'minute'))
31-Mar-2004 19:09:00

但我希望time2始终处于最近的5分钟倍数。我该怎么做(通过添加或乘以某个因子)?

Expected answer: 31-Mar-2004 19:10:00

基本上,在我的整个数据集中,我希望这些值在分钟部分始终为5,10,15,20,...,55等。

1 个答案:

答案 0 :(得分:3)

事实上,你所拥有的是datenum,而不是datetime。例如,您可以先将其转换为datevec,然后围绕分钟,然后转换回datenum

>> dv = datevec(time2);
>> dv(5) = round(dv(5) / 5) * 5;
>> datestr(datenum(dv))
ans =
    31-Mar-2004 19:10:00

如果秒可能非零,您也可以将它们设置为零:

dv(6) = 0;