Этот пример показывает, как упорядочить нерегулярно выборочные данные, чтобы иметь постоянный период времени между измерениями. Вы обновляете метки времени данных, считанных из канала ThingSpeak™, чтобы удалить неисправность, затем пишете данные в канал. Добавьте метку времени к изменениям в результатах измерений, введенных из-за сетевых задержек, или аппаратный сброс может влиять на предварительную обработку данных и алгоритмы анализа данных. Много алгоритмов требуют, чтобы регулярно выборочные данные работали правильно.
Канал ThingSpeak 12397 содержит данные из метеостанции MathWorks®, расположенной в Натике, Массачусетс. Данные собраны один раз в минуту. Поле 4 канала содержит данные о температуре воздуха. Чтобы проверять на нерегулярно выборочные данные, считайте данные о температуре воздуха из канала 12 397 использований функции 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);