У меня есть матрицаMatlab: Добавить миллисекунды время вектор чч: мм: сс
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: 10000. Таким образом, это более 3 символов. Как я могу справиться с этим кодом? Спасибо! – Samuel
Чтобы форматировать числа в 5-значную строку, вы можете использовать sprintf ('% 05d', M {k, 2}); но это не поможет здесь, потому что в секунду есть только одна тысяча миллисекунд, а «датам» будет принимать только три символа. Вы должны повернуть больше 1000 миллисекунд во вторую + миллисекунду. – user3667217