|
|
Sekunden zu datevec hinzuaddieren |
|
unibw |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.01.2013, 17:27
Titel: Sekunden zu datevec hinzuaddieren
|
|
|
|
|
Hallo Zusammen,
ich habe folgendes Problem:
Ich habe eine Zeitangabe als datestr gegeben ('01-Mar-2000 15:45:11') und möchte nun eine bestimmte Anzahl an Sekunden jeweils zu diesem Datum hinzuaddieren. Hierfür wandle ich den datestr in einen datevec um - also einen Vektor mit 6 Einträgen - und addiere zu dessen letzten Eintrag die Sekundenzahl hinzu. Dann transformiere ich den resultierenden datevec wieder in einen datestr. Siehe nachfolgendes Beispiel:
Soweit, so gut. Matlab gibt den erwarteten Wert '01-Mar-2000 15:47:12' aus. Allerdings funktioniert das nicht immer. Ich konnte leider nur nachfolgendes Beispiel künstlich erzeugen:
Führt man diesen Code mittels Matlab aus, so ergibt sich bis auf beim letzten Mal stets die korrekte Ausgabe. Beim letzten Mal allerdings wird nicht ein datestr erzeugt, sondern ein Vektor der Länge sechs, wobei jeder dieser sechs Einträge einen datestr enthält. Ich konnte bei diesem Phänomen bisher leider kein reguläres Verhalten erkennen und hoffe, dass mir jemand weiterhelfen kann. Ich wäre auch zufrieden, wenn ich das Hinzuaddieren von Sekunden anders (aber effizient) hinbekommen könnte.
Viele Grüße,
unibw
|
|
|
|
|
unibw |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.01.2013, 17:30
Titel:
|
|
Hier übrigens noch der Vektor, der beim letzten Mal ausgegeben wird:
|
|
|
LittleX |
Forum-Guru
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 14.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.01.2013, 10:05
Titel:
|
|
Hallo,
ich würde statt datevec das numerische Datumsformat nehmen:
Damit klappt es dann ohne Probleme.
Viele Grüße,
LittleX
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 24.01.2013, 10:48
Titel: Re: Sekunden zu datevec hinzuaddieren
|
|
Hallo unibw,
Das sieht nach einen Bug aus. Welche Matlab-Version verwendest Du? Ich kann dies erst heute Abend überprüfen, aber es ist schon merkwürdig.
Matlab's Datums-Funktionen sind übrigens ausgesprochen ineffizient, da sie viel "Intelligenz" einsetzen. Deutlich schneller ist es, wenn man das Konvertieren hart kodiert, z.B. http://www.mathworks.com/matlabcent.....xchange/25594-dateconvert und http://www.mathworks.com/matlabcent.....xchange/28093-datestr2num. Weil diese schnellen Funktionen aber nicht mehr "schlau" sind, würden sie an dem Überlauf der Sekunden aber wieder scheitern. Aber zumindest ein Teil der Konvertierung liefe damit deutlich schneller.
Gruß, Jan
|
|
|
tschun |
Forum-Fortgeschrittener
|
|
Beiträge: 73
|
|
|
|
Anmeldedatum: 05.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.01.2013, 11:25
Titel:
|
|
Hi,
Mit 2010a konnte ich das Problem nachvollziehen,
Wenn man einen Vektor an die datestr Funktion übergibt, gibt es in der datestr Funktion eine Abfrage, ob es nun datevectors oder einzelne datestr sind.
Da gibt es unter anderem diese Abfrage:
Das wird dann bei viele Sekunden irgendwann falsch und er fasst die Eingabe als Vektor von datenums auf.
Ob das nun ein Bug ist, keine Ahnung.
Lösungsvorschläge gabs ja schon genug, dass nur zur "Erklärung" des Problems.
|
|
|
unibw |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.01.2013, 16:23
Titel:
|
|
Danke für die schnelle Hilfe und die vielen hilfreichen Antworten.
Viele Grüße,
unibw
|
|
|
unibw |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.01.2013, 16:24
Titel:
|
|
Und für Jan S: Ich verwende die Version 2012 b
|
|
|
|
|
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 - 2024
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.
|
|