Создание графика MATLAB с использованием формата ЧЧ: ММ: SSS.FFF, полученного из микросекунд и без даты - PullRequest
0 голосов
/ 31 января 2019

Аналогичное преобразование HH: MM: SS.FFF и вопросы графика в MATLAB уже были даны ответы, однако я попробовал все эти решения, и мой график MATLAB все еще не отображает форматированное время, данные HH: MM: SS.FFF.

У меня есть данные в микросекундах:

time = [2551501274.00000,
2552001200.00000,
2552502202.00000,
2553001184.00000,
2553501334.00000,
2554002022.00000]

Затем я преобразую их в ЧЧ: ММ: SS.FFF как:

microconvert = time
dayconvert = microconvert / 86400000000 
time = datestr(dayconvert, 'HH:MM:SS.FFF')

Я успешно справился с ЧЧ:ММ: формат SS.FFF.Затем на следующем этапе - при попытке отобразить данные о времени - я получаю сообщение об ошибке «Неверный первый аргумент данных».

plot(time)
datetick('x', 'HH:MM:SS.FFF');

Я использовал функцию datatick, как рекомендовано многими решениями, но она не работала.

Как я могу сгенерировать график с моими данными в формате ЧЧ: ММ: SS.FFF?

1 Ответ

0 голосов
/ 31 января 2019

Делая plot(time), вы строите свой вектор time относительно его индексов, т.е. 1:6 в вашем примере.Кроме того, поскольку вы использовали datestr, ваша переменная time на самом деле является массивом char, а не double, поэтому вы не можете построить ее:

>> whos time
Variables in the current scope:

   Attr Name        Size                     Bytes  Class
   ==== ====        ====                     =====  =====
        time        6x12                        72  char

Total is 72 elements using 72 bytes

Вам необходимо построить графикчто-то еще против вашего вектора времени, и убедитесь, что ваш вектор времени имеет тип данных double:

plot(dayconvert,rand(size(dayconvert))) % dayconver is a double array
datetick('x','HH:MM:SS.FFF')

, что дает:

enter image description here

...