MATLAB - работа с метками времени - PullRequest
2 голосов
/ 05 марта 2012

Как я могу преобразовать данные такого типа 08: 00: 43.771, заданные в виде строки, в число, указывающее количество миллисекунд с полуночи, соответствующее этому экземпляру времени?

Ответы [ 2 ]

4 голосов
/ 05 марта 2012

Я обычно использую выходные данные даты Matlab для метки времени в Matlab.Datenums - это количество дней с 0/0/0000, выраженное как двойное число (числа с двойной точностью с точностью до 14 мкс для современных дат).

Использование дат даты.

 currentDateTime1 = datenum('08:00:43.771');           %Assumes today 
 currentDateTime2 = datenum('6/8/1975 08:00:43.771');  %Using an explicit date

 millisecondsSinceMidnight = mod(currentDateTime1 ,1) *24*60*60*1000;  %Mod 1 removes any day component
 millisecondsSinceMidnight = mod(currentDateTime2 ,1) *24*60*60*1000;  %Then this is just a unit conversion

Для необычных форматов строк используйте расширенную форму datenum, которая может принимать спецификатор формата строки.

0 голосов
/ 05 марта 2012

Используйте 1000*etime(datevec('08:00:43.771'),datevec('0:00')), чтобы указать количество миллисекунд с полуночи. etime дает количество секунд между двумя векторами даты, datevec преобразует строки в векторы даты (при условии, что 1 января этого года будет дано только время).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...