|
matlab_gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.02.2013, 09:32
Titel: Zeit vergleichen
|
 |
Hallo,
ich habe zwei verschiedene Dateien mit Messwerten, welche jeweils einer Zeit zugeordnet sind. Nun möchte ich beide Dateien vereinigen, sodass zu jedem Zeitpunkt die Messwerte beider Dateien in einer Zeile stehen. Dabei hat eine Datei Messwerte alle Sekunde, die andere Datei unregelmäßig. Gibt es eine Variante, diese möglichst einfach zu vergleichen? Momentan vergleiche ich erst die Zeit, dann die Minuten und Sekunden. Gibt es z.B. bei Zeiten auch eine Funktion ähnlich wie datenum?
Vielen Dank
Franzi
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.02.2013, 10:42
Titel:
|
 |
Hallo,
du kannst für den Zweck auch datenum verwenden.
Grüße,
Harald
|
|
|
Seban |

Forum-Meister
|
 |
Beiträge: 600
|
 |
|
 |
Anmeldedatum: 19.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab R2014b
|
 |
|
|
 |
|
Verfasst am: 18.02.2013, 10:49
Titel:
|
 |
Hallo,
Ich würde folgenden Ansatz wählen (angenommen, die Werte liegen in Vektoren/Matrizen gleicher Form vor und es geht nicht mit datenum):
1. Vektoren zusammen führen
2. Sortieren
3. unique verwendbar? Sonst benachbarte Zeiten vergleichen -> logischer Vektor (strcmp?, isequal?, diff?) mit dessen Hilfe Datenvektor anpassen.
Wenn du ein Bsp. deiner Daten angibst, könnte man besser helfen.
Grüße
|
|
|
matlab_gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.02.2013, 11:15
Titel:
|
 |
Hallo,
verwende ich datenum, wie von Harald vorgeschlagen, in folgender Art und weise, so erhalte ich für jede beliebige Uhrzeit die selbe Zahl für datenum:
Anbei mein verwendeter Code sowie bespielhaft einige Ausgabewerte dat mit dazugehöriger Zeit aktdat.
aktdate =07.02.2013 14:53:13
dat =7.3527e+005
aktdate =07.02.2013 14:53:23
dat =7.3527e+005
aktdate =07.02.2013 14:53:33
dat =7.3527e+005
aktdate =07.02.2013 14:53:43
dat = 7.3527e+005
|
|
|
matlab_gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.02.2013, 11:18
Titel:
|
 |
Anbei nochmals ein Beispiel meiner zwei Datensätze:
Datensatz 1:
07.02.2013 09:02:24 -7770 -7770
07.02.2013 09:02:34 -7770 -7770
07.02.2013 09:02:44 -7770 -7770
07.02.2013 09:02:53 -7770 -7770
07.02.2013 09:03:03 -7770 -7770
07.02.2013 09:03:12 -7770 -7770
Datensatz 2:
07.02.2013 09:02:24 1 3
07.02.2013 09:02:25 4 4
07.02.2013 09:02:26 1 3
07.02.2013 09:02:28 6 3
07.02.2013 09:02:29 1 5
|
|
|
matlab_gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.02.2013, 11:23
Titel:
|
 |
sorry, habe gerade festgestellt, dass sich die Zahlen wohl ab der 10. Stelle doch leicht unterscheiden, werde es wohl weiterhin erst mal mit Datenum versuchen! Trotzdem Danke für die Hilfe!
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.02.2013, 11:32
Titel:
|
 |
Hallo,
nimm doch mal die Differenz zwischen zwei Zeiten. Dann multiplizieren mit 60*60*24 (Anzahl der Sekunden in einem Tag), und du solltest die Differenzn in Sekunden haben.
Was soll man mit der 7770 oder den anderen Zahlen hinter den Zeiten anfangen?
Grüße,
Harald
|
|
|
matlab_gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.02.2013, 11:34
Titel:
|
 |
Hallo,
das sind meine dazugehörigen (dummy-)Messwerte, also soweit erst mal für den Zeitabgleich nicht relevant.
|
|
|
matlab_gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.02.2013, 12:58
Titel:
|
 |
so, eine letzte Frage habe ich noch: ist es möglich, datenum um 1 Sekunde zu erhöhen, d.h. ich habe einen Wert für Datenum und möchte nun den Wert haben, der der Zeit plus 1 entspricht.
folgendes habe ich schon probier:
habe mir somit also versucht, datenum von 1 Sekunde zu berechnen.
Es erhöht mir jetzt aber immer den Tag um eines und nicht die Sekunden.
Woran kann das liegen bzw. wie kann ich mein Problem lösen?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 18.02.2013, 13:52
Titel:
|
 |
Hallo,
datenum rechnet in Tagen. Eine Erhöhung um 1s entspricht also eine Erhöhung um 1/(60*60*24) Tage.
Grüße,
Harald
|
|
|
matlab_gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.02.2013, 14:10
Titel:
|
 |
vielen Dank! Jetzt funktioniert alles wie gewünscht!
|
|
|
|
|
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.
|
|