我有一个矩阵
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'
我认为这个问题很容易解决。但目前我还不知道如何解决它。
答案 0 :(得分:2)
这是字符串格式化问题。
在您的代码中,而不是
c = num2str(M{k,2});
使用
c = sprintf('%03d',M{k,2});
在上面的用法中,sprintf
如果长度小于3个字符,则在字符串前面填充零。