Verfasst am: 27.10.2012, 14:15
Titel: Re: bestimmte Zeilen aus .txt data aussuchen
Hallo caroline,
Zitat:
Ich möchte aus dieser Datei nur bestimmte Messungen (nach Datum und Zeit) selektieren und am besten in anderem file (txt oder m file ) speichern.
Was genau bedeutet "nach Datum und Zeit selektieren"? Möchtest Du ein bestimmtest Datum find (dann STRNCMP), oder geht es um die Auswahl von Intervallen zwischen zwei Zeiten? Sind die gesuchten Zeiten garantiert vorhanden, oder soll die nächst liegende / vorhergehende /nachfolgende Zeit genommen werden?
Bitte erkläre noch, was Du bisher versucht hast und welche Probleme auftraten. Konkrete Fragen liessen isch deutlich einfacher beantworten.
Ich möchte bestimmte Messungen Nach datum und Uhrzeit aussuchen. (ich möchte nur bestimmtes Datum in bestimmte Uhrzeit). Das Datum ist sicher in dem Datei vorhanden. die Uhrzeit vielleicht nicht. Als Lösung, den nächten Zeitpunkt nehmen.
Ich hab so ein find funktion gefunden, oder ich habe an for schleife gedacht.
Verfasst am: 28.10.2012, 18:58
Titel: Re: text datei
Hallo caroline,
Um nach einer Zeit zu suchen, die eventuell gar nicht vorhanden ist, müssen die Zeit-Strings ins DATEVEC-Format transformiert werden: Also '1/10/2012 05:20' nach [2012 10 1 5 20 0]. Dann lässt sich leicht danach suchen.
Zunächst muss also die Datei eingelesen werden, wozu sich TEXTSCAN oder auch FILEREAD+REGEXP(Str, '\n', 'split') eignet. In letzterem Fall braucht man noch ein SSCANF, um die einzelnen Datums/Zeit und Werte zu extrahieren.
Das Suchen nach bestimmten Zeiten geht danach entweder per FOR-Schleife und FIND, oder wenn Du statt DATEVEC das DATENUM-Format verwendest auch mit einer Interpolation - leider nicht mit INTERP1, da es hier nur die methode "nearest" gibt, aber nicht "previous".
Ich weiß, dass dies nur keline Häppchen sind, deren Sinn sich nicht auf Anhieb erschließen wird. Aber vielleicht reicht es um zu beginnen und danach konkrete Fragen zu stellen, die sich dann viel einfacher beantworten lassen.
Jan hat dir ja Vorschläge gemacht. Was genau hast du versucht, was genau hat daran nicht funktioniert?
Ich würde die Datum/Zeit-Information nehmen und mit DATENUM konvertieren. Dann kann man gut < und > nutzen, um die Datumsangaben mit einem Referenzdatum abzugleichen.
Crossposting, also eine Frage in mehreren Foren gleichzeitig zu posten, ist für die Antwortenden ein Zusatzaufwand und verwirrend. Wenn in einem Forum eine Antwort gepostet wird, muss man sich doch im anderen keinen Arbeit mehr damit machen, oder? Wenn es wirklich nötig ist, poste jeweils Links zu den anderen Fragen, z.B. http://www.mathworks.com/matlabcent.....-with-time-in-time-vector.
das entscheidende ist für mich vor allem, dass zeitnah gepostet wird, wenn sich eine Frage erledigt hat oder anderweitig (z.B. über ein anderes Forum) beantwortet wurde. Die beste Möglichkeit dafür ist, wie von Jan vorgeschlagen, ein Link zu anderen Foren, in denen die Frage gestellt wurde - aktueller gehts dann nicht.
Ansonsten beschäftigen sich Leute hier unnötig mit Fragen, die nicht mehr aktuell sind - und das muss bei allem Verständnis für den Fragesteller nun wirklich nicht sein.
Langfristig kommt man als Neuling wohl am schnellsten voran, wenn man sich systematisch (über ein Buch oder eine Schulung) einarbeitet anstatt sich von Problem zu Problem zu hangeln.
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.