Verfasst am: 24.03.2013, 14:45
Titel: Uhrzeit und Datum beim Einlesen von Excel
Hallo,
ich habe mich gerade in dem Forum angemeldet, jedoch schau ich schon seit einigen Tagen nach einer Lösung für mein Problem, bin jedoch nicht fündig geworden. Ich bin auch Matlab- Anfänger und ich denke, es handelt sich nur um ein "kleineres Problem".
Ich habe diverse Messwerte, die über eine bestimmte Zeit mit Datum (in einer Spalte) und die Uhrzeit nochmal als nächste Spalte welches in einer Spalte angelegt wird, in Matlab einlesen. Die Formatierung in Excel sieht folgendermaßen aus (26.03.2012 00:10:00). Ich beziehe meine Daten aus 2 Registerkarten in Excel.
Ich hab die benötigten Daten aus Excel mit dem Befehl
eingelesen. daten_2 und txt_2 und daten_3,txt_3 habe ich analog gemacht. Als nächstes habe ich meine Variablen deklariert und mit den ausgelesenen Messwerten belegt. Nun schreibe ich meine geordneten Daten mit Uhrzeit und Datum in eine neue Exceldatei. Das klappt soweit auch ganz gut. Jedoch passt das Datum und die Uhrzeit nicht.
Untenstehend habe ich den Code bis zum Deklarieren der Variablen von Uhrzeit und Datum gepostet. Als Anhang habe ich einen Ausschnitt von der Excel-Datein gemacht.
erstmal vielen Dank für deine Antwort. Das Problem lag nicht an dem Code, sondern an der Formatierung in der Exceldatei, da diese unterschiedlich ist. Ich habe einen neuen Weg gefunden und erstelle mir das Datum mit Uhrzeit selber.
schreibt, dann sieht man, dass die Formatierung nicht passt und erst später aufgefüllt wird. Dabei wird mein Vektor nicht 1008 Zeilen lang, wie ich es zuvor beschrieben habe, sondern 1176. Ich denke, es ist nur ein kleiner Fehler, jedoch komme ich nicht drauf und hoffe auf eure Hilfe.
ich habe an der Formatierung der Excel-Datei nichts geändert. Mir ist auch nicht klar, von was sie sich nun wie unterscheiden soll.
Ich weiß zwar nicht, was du erreichen willst, aber du machst es viel zu kompliziert. Folgendes liefert alle drei sinnvollen Repräsentationen für die Datumsangaben.
die Exceldatei ist nur ein Beispiel. Ich kann die Daten nicht veröffentlichen, da es sich um eine Abschlussarbeit handelt und diese der Geheimhaltung unterliegt.
Ich möchte das von mir angelegte Datum in den Spaltenvektor reinschreiben.
Das Programm habe ich jetzt nur für das Datum abgespielt
Im Command Window liefert es mir die folgenden Werte:
ans =
26.03.2012 00:00
ans =
26.03.2012 01:00
ans =
26.03.2012 02:00
ans =
26.03.2012 03:00
ans =
26.03.2012 04:00
ans =
26.03.2012 05:00
...
ans =
02.04.2012 00:00
Das passt auch, jedoch möchte ich diese Daten in einen Vektor mit 1008 Zeilen reinschreiben lassen, sodass jede Zeile im Vektor belegt ist. Angefangen von 26.03.2012 00:00 für die 1 Zeile und 02.04.2012 00:00 für die letzte Zeile (Zeile 1008).
Sorry, aber weiss nicht mehr, wie ich es anders erklären soll.
Hoffe es ist verständlicher,
Gruß Dirk
Ich hab grad einen gravierenden Fehler gefunden, da mir das Datum mit Uhrzeit nicht im Stundentakt angezeigt werden soll, sondern im 10 Minutentakt. Werde das nochmal überarbeiten und mich bei weiteren Fragen melden... Ich denke, dass ist der Grund, warum die beiden Schleifen nicht wie gewünscht funktionieren.
Warum bestehst du auf dieser Schleife, wenn dasselbe auch ohne Schleife in 1-2 Zeilen möglich ist? Die Empfehlung, den von mir geposteten Code zu versuchen, besteht weiterhin.
ich habe den von dir geposteten Code probiert. Ich möchte die Werte dann über das Datum, welches über die x-Achse angezeigt wird, plotten. Deswegen wollte ich es über einen Vektor machen, wo ich zuvor die erstellten Datumswerte eingelesen habe.
Code:
[ax,h1,h2]=plotyy(Vektor,ET01,Vektor,F1AA1,'plot');
datetick('x','dd.mm.yyyy HH:MM');
hold on;
h3=plot(ax(1),Vektor,F1AT1,'r');
xlabel('Datum');
title('Temperaturverlauf des Messfühlers F1AT1 gegenüber Aussentemperatur ET01 und Strömungsgeschwindigkeit F1AA1 im Rohr an einem Tag');
Bitte erkläre die auftretenden Probleme mit mehr Details als "klappt nicht". Eine Hilfe ist viel einfacher, wenn man nicht zunächst das Problem erraten muss. Und für Dich ist das Problem ja bereits offensichtlich.
so ich habe jetzt den code von harald genommen und bei mir die anderen Sachen rausgeworfen. Wenn ich wie bei dir vorgeschlagen, den letzten Wert am letzten Tag weglasse, also Endwert=734960+23/24; eingebe, dann meckert er, da mein Vektor nicht dieselbe Länge hat. Im Workspace seh ich 1003x1. Ich brauche jedoch 1008.
Wenn ich den Endwert wie gelasse poste, dann lieg ich bei 1009x1.
Deswegen wollte ich die ganze Geschichte über einen Vektor machen, wo ich meine generierten Werte mittels Schleife einschreiben lasse und den Vektor vorher mit Vektor=zeros(m,n) belege und m=10008 und n=1 schreibe.
Im Workspace seh ich 1003x1. Ich brauche jedoch 1008.
Dann überleg doch mal, woran das liegt. Wenn du bei Endwert 23/24 addierst, hören die Daten um 23:00 auf, sie sollen aber wohl um 23:50 aufhören. Wie musst du also die 23/24 abändern, damit es passt?
Zitat:
Deswegen wollte ich die ganze Geschichte über einen Vektor machen
Die Idee lässt dich nicht los, hm? Dabei ist es nur eine minimale Anpassung, die du vornehmen musst.
Hab jetzt endlich die x-Achse mit der Datumsangabe. Werde jetzt die Skalierung noch ändern. Danke schon mal für deine/eure Bemühungen.
Wird bestimmt nicht meine letzte Frage sein.
Viele Grüße und schöne Ostern,
Dirk
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
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.