|
EddiEdward |

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 05.01.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.01.2011, 16:25
Titel: Nach Tageszeit filtern
|
 |
|
 |
|
Guten Tag,
Ich bin noch recht neu in MatLab und beschäftige mich zur Zeit noch mit der Datenanalyse um das Grundhandwerk zu erlernen.
Aktuell habe ich folgendes Problem:
Ich habe eine Tabelle mit Zeitdaten in der Form
Zitat: |
...
734463,040781900
734463,059035900
734463,082563600
734463,109455400
734463,157487000
... |
Jede Zahl entspricht der Empfangszeit eines Meldetelegramms. Der Zeitrahmen der Tabelle ist bspw. 1 ganzer Monat. Es wechselt also ständig das Datum und so die Zahl vor dem Komma.
Ich möchte nun sämtliche Telegramme(Datensätze) herausfiltern, die in einer bestimmten Tageszeit angekommen sind, z.B. zwischen 10:00 Uhr und 12:00 Uhr.
Ich habe keine Ahnung wie ich das machen könnte.
Ich denke, dass ich mit einer Umwandlung der Daten in Vektoren die Uhrzeit in jedem Datensatz isolieren könnte und mit den Eingabezeiten vergleichen. Das würde zum einen wieder unelegante for-Schleifen erforderlich machen, wobei ich darum am Ende sicherlich nicht herum kommen kann. Was schwerer wiegt, für die Rechenzeit, ist die Umwandlung eines jeden datenum in einen Vektor. Mit solch einer Umwandlung über viele tausend Daten (~20.000) hinweg habe ich schon schlechte Erfahrung gemacht.
Hat jemand eine Idee, ob ich mit irgendeiner Funktion oder einem Trick die Stellen vor dem Komma einer jeden Uhrzeit(datenum) abschneiden kann? Da die Stellen nach dem Komma die Uhrzeit 'verkörpern' ließe sich eine sehr schnelle Schleife basteln...
Viele Grüße,
Eddi
|
|
|
|
|
EddiEdward |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 05.01.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.01.2011, 16:27
Titel:
|
 |
Mist, ich habe vergessen, den Thread unter "Programmierung" zu eröffnen. Vielleicht könnte ein Mod ihn verschieben?
|
|
|
Verschoben: 14.01.2011, 17:45 Uhr von denny Von Sonstige MATLAB Fragen nach Programmierung |
Sco |

Forum-Meister
|
 |
Beiträge: 699
|
 |
|
 |
Anmeldedatum: 15.08.10
|
 |
|
 |
Wohnort: Dundee
|
 |
|
 |
Version: 2008a, 2010a
|
 |
|
|
 |
|
Verfasst am: 14.01.2011, 18:31
Titel:
|
 |
Hallo,
das einfachste wird wohl sein beim Einlesen der Zahlen aus der Datei nur die Zahlen hinter dem Komma zu verwnden.
Am Beispiel einer Textdatei wuerde dies z.B. so gehen:
MFG
Sco
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 15.01.2011, 01:22
Titel: Re: Nach Tageszeit filtern
|
 |
Hallo EddiEdward,
Zitat: |
...
734463,040781900
734463,059035900
734463,082563600
734463,109455400
734463,157487000
... |
In welcher Form liegt den die Tabelle in Matlab vor? Ist das ein Cell string? Sind das Zahlen, die Du statt Dezimal-Punkt mit Komma gechrieben hast?
Die Zahlen sehen sehr nach DATENUM-Werten aus. Die Umwandlung in ein DATEVEC-Array sollte sehr schnell gehen, das DATEVEC auch eine Vektor von Inputs annimmt:
Das lohnt es sich kaum vorher den Datums-Anteil abzuspalten.
Gruß, Jan
|
|
|
EddiEdward |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 05.01.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.01.2011, 20:09
Titel:
|
 |
Guten Abend,
Ich danke für die Antworten.
@ Sco: Danke für die Antwort, ich werde diese Möglichkeit im Hinterkopf behalten für zukünftige Probleme. Letztlich habe ich es dann doch mit datevec gemacht. Ich erinnere mich leider nicht mehr, in welchem Zusammenhang ich schlechte Erfahrungen mit datevec gemacht habe.
Es klappt bestens. Die Datenum-Zahlenwerte werden in Vektoren umgewandelt und dann lediglich die 4. Spalte ('HH') mit der Eingabezeit verglichen. Dauert keine Sekunde.
Danke
|
|
|
|
|
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.
|
|