0
我想计算的时间(以毫秒为单位)的数据是这样的:经过时间以毫秒为单位不同日期
START: 2013-05-04 23:13:06.188
ENDED: 2013-05-05 1:22:41.617
,因为我需要以毫秒为单位经过的时间我不能使用etime()
。当我使用一个for循环是这样的:
[start_i, end_i] = regexp(data{i}, '\d+-\d+-\d+ \d+:\d+:\d+.\d+');
temp_str = data{i};
time{i} = cellstr(temp_str(start_i:end_i));
n1 = datenum(datevec(time{i-1}, 'yyyy-mm-dd HH:MM:SS.FFF'));
n2 = datenum(datevec(time{i}, 'yyyy-mm-dd HH:MM:SS.FFF'));
n = n2 - n1
它提供了以下错误:
Error using dtstr2dtvecmx
Failed on converting date string to date number.Error in datevec (line 118)
y = dtstr2dtvecmx(t,icu_dtformat);Error in test (line 40)
n1 = datenum(datevec(time{i-1}, 'yyyy-mm-dd HH:MM:SS.FFF'));
如果我用datevec()
这样的:
[start_i, end_i] = regexp(data{i}, '\d+:\d+:\d+.\d+');
temp_str = data{i};
time{i} = cellstr(temp_str(start_i:end_i));
t1 = datevec(time{i-1}, 'HH:MM:SS.FFF');
t2 = datevec(time{i}, 'HH:MM:SS.FFF');
t = t2 - t1
datevec(t)
它减少时间段,逐元素(秒与秒,分与分钟等),并有时给负数。
我认为应该有一个完整的方式来做到这一点,而不需要手动修复负值。有谁知道如何做到这一点?
其实'datenum'确实接受字符串单元阵列,所以你你写一个量化的呼叫:'T = datenum(S,“YYYY-MM-DD HH :MM:SS.FFF')' – Amro 2013-05-08 08:25:49