|
|
Datum und Uhrzeit aus Excel mit datenum umwandeln |
|
HansMeiser10 |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 18.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.06.2013, 14:45
Titel: Datum und Uhrzeit aus Excel mit datenum umwandeln
|
 |
Hallo Leute,
ich habe ein (vermutlich) kleines Problem beim Einlesen von Datum und Uhrzeit, sowie der Umwandlung in Matlab. Ich habe eine Exceltabelle die folgendermaßen aussieht:
Spalte A
Datum
06.01.2013 00:00:00
06.01.2013 00:01:00
06.01.2013 00:02:00
...
In der ersten Zeile steht also das Datum und die Uhrzeit. In weiteren Spalten Daten (für das Problem aber unwesentlich). Jetzt lese ich diese Daten mit Matlab ein:
Wenn man sich jetzt den Vektor time anschaut steht da drin:
06.01.2013
06.01.2013 00:01:00
06.01.2013 00:02:00
und damit schlägt auch datenum fehl. Ich könnte jetzt bei der Umwandlung Zeile für Zeile vorgehen und prüfen, ob die Zeit nur 10 Stellen hat und dann entsprechend vorgehen, aber gibt es eine elegantere Möglichkeit? z.B. das matlab immer in dem entsprechenden Format einließt?
Vielen Dank schonmal.
Hans
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 18.06.2013, 15:35
Titel: Re: Datum und Uhrzeit aus Excel mit datenum umwandeln
|
 |
Hallo HansMeiser10,
Im dritten Output von XLSREAD bekommst Du die Roh-Daten. Dort finden sich entweder Strings oder Das serielle Datumsformat von Excel. Leider unterscheidet sich dies zwischen Windows PCs und Macs (Hurry Microsoft!). Auf PCs lässt es sich so umwandeln:
Wenn das Excel-File auf einem Mac abgespeichert wurde ist es eventuell 695422.
Du könntest aber auch den Cell-String auffüllen:
Gruß, Jan
|
|
|
HansMeiser10 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 18.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.06.2013, 15:50
Titel:
|
 |
Hi,
okay das probiere ich gleich mal aus. Die Rohdaten habe ich auch schon probiert, allerdings ist da dann ja alles enthalten. Das Datum sieht in dem Vektor allerdings genauso aus, wie im temp Vektor, nur das ich dort auch die numerischen Daten aus den anderen Spalten sehe.
VG
|
|
|
HansMeiser10 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 18.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.06.2013, 17:43
Titel:
|
 |
Das zweite hat super funktioniert! Danke!
|
|
|
Geranie |

Forum-Anfänger
|
 |
Beiträge: 44
|
 |
|
 |
Anmeldedatum: 27.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2013a
|
 |
|
|
 |
|
Verfasst am: 21.06.2013, 11:34
Titel:
|
 |
Hey,
ich sitze gerad auch vor diesem Problem und habe es nun auch mit dem zweiten Code versucht. Leider bekomme ich immer noch eine Fehlermeldung.
Hier einmal mein modifizierter Code (ich bin mir nicht sicher, ob ich 'time' richtig ersetzt habe? Ich habe ein cell_arry namens untitled. Meine Daten stehen in Spalte 2 ab Zeile 2 bis Ende.):
Folgende Fehlermeldung erhalte ich für datenum:
Zitat: |
Error using datenum (line 179)
DATENUM failed.
Error in AEP2013_einlesen (line 23)
dispatchAep2013.time = datenum(untitled(2:end,2),'dd.mm.yyyy HH:MM:SS');
Caused by:
Error using dtstr2dtnummx
Failed on converting date string to date number. |
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 22.06.2013, 13:54
Titel:
|
 |
Hallo Geranie,
Um das Problem zu verstehen, müssen wir den Inhalt von "untitled" kennen. Welche Zeile wird denn von DATENUM nicht verstanden? Um dies herauszufinden kannst Du einfach in einer Schleife das Cell-Array elementweise bearbeiten lassen und die Fehler per TRY-CATCH abfangen.
Ein solches Debuggen ist oft effizienter als das Forum zu fragen, wenn die Daten lokal vorliegen, das Forum die Details aber erraten müsste.
Gruß, Jan
|
|
|
Geranie |

Forum-Anfänger
|
 |
Beiträge: 44
|
 |
|
 |
Anmeldedatum: 27.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2013a
|
 |
|
|
 |
|
Verfasst am: 24.06.2013, 14:18
Titel:
|
 |
Hallo Jan,
danke für die Hilfestellung!
Ich hab das Problem nun so gelöst, in dem ich untitled(2:end,2) in die Variable "time" übergeben habe und dann den Code wie oben (im 2.Post) angewendet habe. Das hat direkt funktioniert!
Ich vermute, ich habe irgendwo einen Fehler dabei gemacht, im Code "time" durch "untitled(2:end,2)" zu ersetzen.
Beim nächsten Mal werde ich es auch nochmal mit dem Debuggen probieren, bevor ich hier nachfrage!
Besten Dank nochmal!
|
|
|
|
|
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.
|
|