2014-10-17 3 views
3

У меня есть таблица с множеством дат вроде этого: 17: 01: 11,356078. Я знаю, что у данных нет точности обработки микросекунд. Также datevec не подходит для этого, infact, что дата стала 3.5608e + 5 (миллисекунды), используя ее. Мне нужна точность в микросекундах, потому что мне приходится вычислять времена дельта.Дата с микросекундами в MATLAB

ответ

1

Существующие форматы дат в Matlab не допускают ничего меньшего, чем микросекунды. Поэтому решение состоит в том, чтобы избежать этих форматов.

Сравнительно простой способ сделать это - разделить числа. Например, есть 1 вектор с датами, округленными до второго, и другим вектором с долей секунды. Таким образом, при необходимости вы можете получить очень высокую точность.

Вычисление разницы было бы сделано путем добавления разницы в секундах к разнице в остальном. (Использование константы для масштабирования разницы)

1

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

К сожалению, структура даты/времени из Matlab не отображается ниже милисекунд.

4

Если у вас есть возможность использовать последнюю версию R2014b, она включает в себя капитальный ремонт обработки даты и времени, включая новые объекты datetime, которые обрабатывают наносекундную точность.

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

0

проблема с датой - то, что вы ограничены точностью двойного. Если вы избавитесь от дневного смещения, подав строку с датой 0-jan-0000-hrs:mins:secs, то количество данных вполне способно разрешить искупительные секунды. Это полезно только в том случае, если вас не интересуют даты, но опять же это будет проблемой, однако вы переходите к двойному

Смежные вопросы