2017-01-11 18 views
3

私は日付MATLABでdatetimeを5の倍数にするにはどうしたらいいですか?

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などにします。

+0

'time1'はいつも5分の倍数であることが保証されていますか?もしそうなら、これに加えているものを変更するだけです。 'round(( - 53.1 * 60)/ 5)* 5' – gnovice

+0

@gnovice時間の95%。しかし、time1が5の倍数でない場合には、あなたが考慮する方法があれば、それはすごく大変です。ありがとう。 – maximusdooku

答えて

3

あなたが持っているものはdatenumであり、datetimeではありません。あなたは、例えば、最初のdatenumに戻って変換し、その後、その後、分ラウンド、datevecに変換できます:秒が非ゼロであることも可能である場合

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

、あなたはまた、それらをゼロに設定することができます。

関連する問題