Этот пример показывает, как упорядочить нерегулярно выбранные данные, чтобы иметь постоянный период времени между измерениями. Вы обновляете временные метки данных, считанных из канала ThingSpeak™, чтобы удалить нерегулярность, затем записываете данные в канал. Изменения временных меток в измеренных данных, введенные из-за задержек в сети или аппаратных сбросов, могут повлиять на предварительную обработку данных и алгоритмы аналитики данных. Многие алгоритмы требуют, чтобы регулярно дискретизированные данные работали правильно.
Канал ThingSpeak 12397 содержит данные метеостанции MathWorks ®, расположенной в Натике, штат Массачусетс. Данные собираются один раз в минуту. Поле 4 канала содержит данные температуры воздуха. Для проверки нерегулярных выборочных данных считайте данные о температуре воздуха из канала 12397 с помощью thingSpeakRead
функция.
data = thingSpeakRead(12397,'NumMin',60,'Fields',4,'outputFormat','timetable');
Данные за последние 60 минут, считанные из канала 12397, хранятся в качестве расписания. Использование isregular
функция для проверки, регулярно ли дискретизируются данные канала. Если данные дискретизированы нерегулярно, сгенерируйте регулярно разнесенный временной вектор для интересующего периода времени. Сгенерируйте новый временной вектор с помощью linspace
с startTime
, stopTime
, и количество измерений.
regularFlag = isregular(data,'Time'); if ~regularFlag startTime = data.Timestamps(1); stopTime = data.Timestamps(end); newTimeVector = linspace(startTime,stopTime,height(data)); data.Timestamps = newTimeVector; end
Отправьте обработанные данные в канал ThingSpeak с помощью thingSpeakWrite
функция.
% Change the channelID and the writeAPIKey to send data to your channel. channelID=17504; writeAPIKey='23ZLGOBBU9TWHG2H'; thingSpeakWrite(channelID,data,'WriteKey',writeAPIKey);