|
|
Zeitvektor auf Konsistenz prüfen |
|
balli1187 |

Forum-Anfänger
|
 |
Beiträge: 26
|
 |
|
 |
Anmeldedatum: 15.06.12
|
 |
|
 |
Wohnort: Magdeburg
|
 |
|
 |
Version: 2007b
|
 |
|
|
 |
|
Verfasst am: 01.03.2017, 17:48
Titel: Zeitvektor auf Konsistenz prüfen
|
 |
|
 |
|
Hallo,
ich habe häufig mit Zeitreihen im 15min Raster zu tun, welche ich zumeist aus Excel oder CSV-Dateien importiere.
Ich suche nach einer Möglichkeit zu prüfen ob auch alle Werte vorhanden sind oder ob meine importierten Daten Lücken enthalten.
Bsp:
...
01.04.2016 13:00:00
01.04.2016 13:15:00
01.04.2016 13:45:00
01.04.2016 14:00:00
Im Beispiel fehlt ganz offensichtlich der Wert für 13:15:00. Beim Import werden die Daten immer in eine passende Zahl umgewandelt, welche ich mit datestr() wieder in den oben stehenden Ausdruck umwandeln kann.
Ich habe es mit unterstehender Funktion versucht, allerdings kriege ich dort wesentlich mehr Fehlstellen angezeigt als es wirklich gibt.
function [anz, idx]=isDateConsistent(InputDateVec,timestep)
% Funktion prüft ob der Abstand der Zeitstempel gleichbleibend ist
% InputDateVec: zu prüfender Zeitvektor
% timestep: Sollabstand zwischen zwei Zeitstempeln
% anz: Anzahl an Fehlstellen
% idx: Index vor Fehlstellen
jj=1;
for ii=2:1:length(InputDateVec)
div=InputDateVec(ii,1)-InputDateVec(ii-1,1);
if div ~= timestep
idx(jj,1)=ii-1;
jj=jj+1;
end
end
anz=jj;
end
Die Funktion ist äußerst simpel und vielleicht auch nicht gerade besonders galant für diese Aufgabe - sollte aber eigentlich funktionieren... Meine Vermutung ist, dass es irgendwas mit der Konvertierung datenum - datestr zu tun hat aber weiter weiß ich nicht.
Habe ich irgendwo einen Denkfehler?
Dank im Voraus und Grüße,
Stephan
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 01.03.2017, 21:45
Titel:
|
 |
Hallo,
mit datetime wäre das deutlich leichter. Falls du aber tatsächlich noch 2007b verwendest, ist das allerdings ein Problem, da es datetime erst ab 2014b gibt.
Grüße,
Harald
|
|
|
balli1187 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 26
|
 |
|
 |
Anmeldedatum: 15.06.12
|
 |
|
 |
Wohnort: Magdeburg
|
 |
|
 |
Version: 2007b
|
 |
|
|
 |
|
Verfasst am: 01.03.2017, 22:03
Titel:
|
 |
Hallo Harald,
danke für deine nachricht. Ich weiß ich bin da etwas hinter'm mond aber was soll man machen....
Wie würde es mit datetime gehen? Mein Zugang zu einer 2015 Version ist zwar zeitlich eingeschränkt aber eventuell lässt sich das dann dort umsetzen.
Grüße, Stephan
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 01.03.2017, 23:45
Titel:
|
 |
Hallo,
Zitat: |
aber was soll man machen.... |
Was spricht denn gegen eine Aktualisierung?
Mit datetime könntest du wohl dieselbe Funktion schreiben, nur dass es funktionieren würde, da die Unterschiede zwischen datetimes exakt sind. Bei der Umwandlung in datenums sind sie das augenscheinlich nicht.
Wenn du statt div ~= timestep das verwendest:
abs(div - timestep) > 0.01*timestep
dann sollte es auch so gehen.
Eine Schleife sollte da übrigens unnötig sein. Aus dem Stand würde ich sagen:
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|