Matlab:为时间向量添加毫秒数hh:mm:ss

时间:2015-08-16 18:14:21

标签: matlab datetime time

我有一个矩阵

M = 
hh:mm:ss ms
'12:00:01' 1
'12:00:02' 2
'12:00:03' 3
'12:00:04' 4
'12:00:05' 5

现在我想将毫秒ms数组添加到我的时间向量中。像

   N = 
    hh:mm:ss
    '12:00:01.001'
    '12:00:02.002'
    '12:00:03.003'
    '12:00:04.004'
    '12:00:05.005'

我该怎么做?我试过的是:

for k=1:length(M)
    t1 = datenum(M{k,1},'HH:MM:SS');
    c = num2str(M{k,2});
    t2 = datenum(c,'FFF');
    time = t1+t2;
    N{k,1} = datestr(time,'HH:MM:SS.FFF');
end

但这并没有做好工作。我得到的是:

N = 
hh:mm:ss
'12:00:01.100'
'12:00:02.200'
'12:00:03.300'
...
'12:00:04.100'
'12:00:05.110'
'12:00:05.120'

我认为这个问题很容易解决。但目前我还不知道如何解决它。

1 个答案:

答案 0 :(得分:2)

这是字符串格式化问题。

在您的代码中,而不是

c = num2str(M{k,2});

使用

c = sprintf('%03d',M{k,2});

在上面的用法中,sprintf如果长度小于3个字符,则在字符串前面填充零。