如何在MATLAB中以5的倍数生成日期时间?

如何在MATLAB中以5的倍数生成日期时间?,matlab,datetime,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 但我希望时间2始终是5分钟的最接近倍数。我如何才能做到这一点(通过添加或乘以某些因子) 基本上,在我的整个数据集中,我希望这些值在分钟部分始终为5,10,15,20,…,55等等。事实上,您拥有的是a,而不是。例如,您可以先将

我有个约会

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

time2 = datestr(addtodate(aTime, -53.1*60, 'minute'))
31-Mar-2004 19:09:00
但我希望时间2始终是5分钟的最接近倍数。我如何才能做到这一点(通过添加或乘以某些因子)


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

事实上,您拥有的是a,而不是。例如,您可以先将其转换为,然后将分钟四舍五入,然后再转换回
datenum

>> dv = datevec(time2);
>> dv(5) = round(dv(5) / 5) * 5;
>> datestr(datenum(dv))
ans =
    31-Mar-2004 19:10:00
如果秒数可能不为零,也可以将其设置为零:

dv(6) = 0;

time1
是否始终保证为5分钟的倍数?如果是这样的话,您所要做的就是更改您要添加到其中的内容:
轮(-53.1*60)/5)*5
@gnovice 95%的时间。但是如果你有办法解释,如果time1不是5的倍数,那就太可怕了。谢谢
dv(6) = 0;