Verfasst am: 13.01.2010, 11:45
Titel: Problem mit dem Format
Hi
ich versuche gerade Messreiehen bei Matlab einzulesen um sie anschließend zu plotten.
Sprich, ich habe mehrere Datein, die Messdaten eines bestimmten Zeitraums beinhalten.
ich möchte: 1. diese einlesen (es ist eine Zahl, ein Datum, eine Uhrzeit und eine kommazahl)
2. nur jeden 4. Wert der Daten "behalten"
3.die Daten aus den einzelenen Datein aneinander hängen und plotten
Mein 1. Problem ist ein richtiges Format zu finden, so dass alle Werte richtig angezeigt werden und ich mit ihnen trotzdem noch "rechnen" kann.
Bis jetzt habe ich das nur mit dem "cell" format geschafft mit unbefriedigendem ergebnis.
ich würde als Format-String '%f %s %s %f' verwenden.
Die Daten kommen dann als cell zurück, und du hast ja schon herausgefunden, wie man das extrahiert. Inwiefern ist das nun "unbefriedigend"?
Und: was willst du wie "aneinanderhängen"?
Was soll gegen was geplottet werden?
Um die Uhrzeit auf den Plot zu bringen, bietet sich DATENUM an.
Vielleicht kannst du ja einen Ausschnitt deiner Textdatei mit 3 Zeilen oder so posten, damit man damit mal experimentieren kann.
Danke für Deine Antwort.
Mit '%f %s %s %f' erzeugt er mir Variablen, die allesamt "leer" sind, warum weiss ich nicht.
Aneinanderhängen mein ich so das ich aus der ersten Datei eine Zeitreihe erzeuge die 5 Jahre abdeckt und aus der 2. Datei die nächsten 5 Jahre.
Und ich würd gerne eine Variable erzeugen in der alle werte aus den Datein Vortlaufend gespeichert sind.(bei 3 Datein über 15 Jahre)
Unbefriedigend ist, dass ich alles was ich mit den "cell`s" machen will nicht funktioniert mit der fehlermeldung das ein cell als input nicht geht....
(vielleicht kenn ich aber auch nur nicht die richtigen Befehle)
dadurch, dass ich nur jeden 4. Wert nehme habe ich pro tag 6 Messwerte (Kommazahl) daraus soll ein Mittelwert für den ganzen Tag genommen werden und dann die Messwerte über die Zeit (Datum) geplottet werden.
da in dieser Datei (IMO unsinnigerweise) , als Dezimaltrennzeichen verwendet wird, ist eine Vorverarbeitung notwendig. Um das Leben zu erleichtern, habe ich auch noch den Datumsteil etwas umgewandelt.
hast du mal versucht, den Code auf den Dateiausschnitt anzuwenden, den du gepostet hast? Wenn es damit funktioniert, mit der "echten" Datei aber nicht, dann ist vermutlich das Format nicht durchgängig gleich - bitte überprüfen.
Ansonsten: welche MATLAB-Version nutzt du?
Du hast recht mit dem kleinen Ausschnitt klappt es.
Habe das Format der Datein eig überprüft und ist durchgängig.
Das sind DAT. Datein kann es daran liegen?
Ich hab Version 7.9.0(R2009b).
Das check ich noch nicht ganz wie ich aus meinen einzelnen Zeitreihen eine zusammenhängende mache.
Nochmal kurz zusammengefasst:
Habe einzelne Zeitreihen (in einzelnen Datein) über einen bestimmten Zeitraum und möchte diese zu einer einzigen zusammenhängenden Zeitreihe machen.
du initialisierst dates und values als leere Arrays.
Dann lässt du eine for-Schleife über die Datei(namen) laufen - die kannst du dir mit Befehl DIR holen.
In dieser for-Schleife hängst du dann die neuen dates und values an die alten an. So werden aus den vielen kleinen Zeitreihen eine große.
Es sind nur nicht alle Zeitreihen 140252 Zeilen lang, mir ist der Befehl nicht bekann wie ich die Schleife bis zum Ende durchlaufen lassen kann, nachdem "end" ja auf die for-Schleife bezogen wird.
Musst du natürlich leicht anpassen, aber ich will dir ja auch noch was lassen
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
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.