Hauptinhalt

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Regularisieren Sie unregelmäßig erfasste Daten

Dieses Beispiel zeigt, wie unregelmäßig erfasste Daten reguliert werden, um einen konstanten Zeitraum zwischen den Messungen zu erhalten. Sie aktualisieren Zeitstempel der von einem ThingSpeak™ -Kanal gelesenen Daten, um Unregelmäßigkeiten zu beseitigen, und schreiben die Daten dann in einen Kanal. Zeitstempelschwankungen in den Messdaten, die durch Netzwerklatenzen oder Hardware-Resets entstehen, können sich auf die Datenvorverarbeitung und Datenanalysealgorithmen auswirken. Viele Algorithmen erfordern regelmäßig abgetastete Daten, um ordnungsgemäß zu funktionieren.

Lesen Sie Daten vom Wetterstationskanal

ThingSpeak Kanal 12397 enthält Daten von der MathWorks® Wetterstation in Natick, Massachusetts. Die Daten werden einmal pro Minute erfasst. Feld 4 des Kanals enthält Lufttemperaturdaten. Um zu prüfen, ob unregelmäßig erfasste Daten vorliegen, lesen Sie die Lufttemperaturdaten von Kanal 12397 mit der Funktion thingSpeakRead aus.

data = thingSpeakRead(12397,'NumMin',60,'Fields',4,'outputFormat','timetable');

Suchen Sie nach unregelmäßig erfassten Daten

Die vom Kanal 12397 gelesenen Daten der letzten 60 Minuten werden als Zeitplan gespeichert. Verwenden Sie die Funktion isregular , um zu überprüfen, ob die Kanaldaten regelmäßig abgetastet werden. Wenn Daten unregelmäßig abgetastet werden, generieren Sie einen regelmäßigen Zeitvektor für den interessierenden Zeitraum. Erzeugen Sie einen neuen Zeitvektor mit linspace mit startTime, stopTime und der Anzahl der Messungen.

regularFlag = isregular(data,'Time');

if ~regularFlag
    startTime = data.Timestamps(1);
    stopTime  = data.Timestamps(end);
    newTimeVector = linspace(startTime,stopTime,height(data)); 
    data.Timestamps = newTimeVector;
end

Daten an ThingSpeak senden

Senden Sie die verarbeiteten Daten mit der Funktion thingSpeakWrite an einen ThingSpeak Kanal.

% Change the channelID and the writeAPIKey to send data to your channel.
channelID=17504;
writeAPIKey='23ZLGOBBU9TWHG2H';
thingSpeakWrite(channelID,data,'WriteKey',writeAPIKey);

Siehe auch

(MATLAB) | (MATLAB) | (MATLAB)