WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Uhrzeit aus Excelfile in Matlab einlesen

 

Slamdunker23
Forum-Century

Forum-Century


Beiträge: 101
Anmeldedatum: 03.11.09
Wohnort: Stuttgart
Version: R2012b
     Beitrag Verfasst am: 06.08.2013, 10:03     Titel: Uhrzeit aus Excelfile in Matlab einlesen
  Antworten mit Zitat      
Hallo zusammen.

Ich habe in einem Excelfile eine Spalte die mit Werten, die Uhrzeiten in folgendem Format enthält:

Bpsw: 12:05:06 (12 Uhr 05 Minuten und 06 Sekunden)

Beim Einlesen mit dem Befehl xlsread werden diese Inhalte in Zahlen umgewandelt.
Wie kann ich das verhindern? Ich habe schon versucht, diese als char einzulesen, hat aber auch nicht funktioniert.

Vielen Dank für eure Hilfe.

Herzlicher Gruß, Slamdunker23
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.08.2013, 10:13     Titel:
  Antworten mit Zitat      
Hallo,

das wird vermutlich an dem Format der Excel-Zellen liegen. Wenn das auf "Text" gesetzt wird, sollte es gehen.
Falls das nicht hilft, bitte einen kleinen Ausschnitt der Excel-Datei anhängen.

Für viele Anwendungen benötigt man letztlich ohnehin Zahlen, insofern ist das doch gar nicht so schlecht? Mit datestr können die Zahlen auch wieder in Datumsstrings umgewandelt werden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Slamdunker23
Themenstarter

Forum-Century

Forum-Century


Beiträge: 101
Anmeldedatum: 03.11.09
Wohnort: Stuttgart
Version: R2012b
     Beitrag Verfasst am: 12.09.2013, 10:59     Titel:
  Antworten mit Zitat      
Hallo!

Ich greife das Thema nochmals kurz auf, da ich noch kein Ergebnis habe.

Du hast recht, dass die Uhrzeit nicht als Textformat in der Exceldatei gespeichert ist.
Die Exceldatei wird folgendermaßen erzeugt:

1.) Cell-Array in Matlab, die sieht folgendermaßen aus:

Das Cell-Array hat drei Spalten und die erste Spalte identifiziert die Uhrzeit. Das Cell-Format für die Uhrzeit ist 'char'.

2.) Dieses Array wird mit dem Befehl xlswrite als Exceldatei geschrieben.

3.) Beim Öffnen der Exceldatei ist die Uhrzeit im Benutzerdefinierten-Format, wohingehen die zweite Spalte (einer reiner Text) im Textformat vorliegt.

Meine Vermutung ist, dass der Befehl xlswrite das eigentliche 'char'-Format des Cell-Arrays nicht in einen Text umwandelt.

Was meint ihr?

Herzlicher Gruß, Daniel

Test.zip
 Beschreibung:

Download
 Dateiname:  Test.zip
 Dateigröße:  293 Bytes
 Heruntergeladen:  292 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.09.2013, 12:20     Titel:
  Antworten mit Zitat      
Hallo Slamdunker23,

Excel versucht schlau zu sein und wandelt Datums auch mal automatisch ins Datums-Format um, falls man das nicht explizit in den Optionen ausgeschaltet hat. Dann erscheinen zwar in der Tabelle die Datums mal mit, mal ohne Zeit oder Jahr, intern wird das Datum aber als serielles Format, also als Zahl.
Diese kann man (fast) einfach in das serielle Datums-Format von Matlab umrechnen:
Code:
if ismac
   MD = datevec(XD + 695422);
else
   MD = datevec(XD + 693960);
end

Das ist leider zu sehr vereinfacht, denn es kommt nicht darauf an, auf welcher Maschine die Datei gelesen wird, sondern auf welcher sie geschrieben wurde. Denn Microsoft hatte die tolle Idee, das serielle Format auf Macs und PCs an unterschiedlichen Tagen starten zu lassen. Wie man aber per Matlab ausliest, ob es ein Mac oder PC-Excel-File ist, weiß ich nicht.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.09.2013, 09:42     Titel:
  Antworten mit Zitat      
Hallo,

falls die Financial Toolbox verfügbar ist, kann man hier die Funktion
Code:

verwenden.

Allerdings muss man auch dazu wissen, welche der Datumskonventionen verwendet wurde.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Slamdunker23
Themenstarter

Forum-Century

Forum-Century


Beiträge: 101
Anmeldedatum: 03.11.09
Wohnort: Stuttgart
Version: R2012b
     Beitrag Verfasst am: 13.09.2013, 15:28     Titel:
  Antworten mit Zitat      
Vielen Dank für eure Hilfe.

Jetzt weiß ich wenigstens mal, was ich brauche, um dies richtig umzusetzen.
Falls noch weitere Fragen aufkommen, melde ich mich bei euch!

Schönes Wochenende,

Daniel
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.