WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Bestimmung der Differenz zwischen zwei Datum/Zeit angaben

 

Urlaub2222
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 06.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2013, 09:59     Titel: Bestimmung der Differenz zwischen zwei Datum/Zeit angaben
  Antworten mit Zitat      
Hallo,

ich habe Messdaten und möchte diese Trennen wenn zwischen den Datensätzen eine Pause größer als 10 Minuten ist.
Das Datumsformat ist Serialdate oder ein Datevector.
(Eine Lösung mit Serialdate wäre mir am liebsten)

Das Format ist "dd.mm.YYYY HH:MM:SS.FFF".

Wie kann ich die Differenz zweier Datensätze bestimmen und vor allem dann vergleichen ob sie größer als 10 Minuten ist?


Ich habe auch noch keine Lösung zum Trennen des Datensatzes. Wenn eine Differenz von Datensatz x zu seinem Vorgänger >10 Minuten ist, soll ein neuer Datensatz angelegt werden. Es müsste ja dynamisch jeh nach Anzahl der "Pausen" eine dementsprechende Anzahl an neuen Arrays erzeugt werden!?


Danke im voraus! Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.02.2013, 10:26     Titel:
  Antworten mit Zitat      
Hallo,

wenn du in Serial Dates umwandelst, kannst du die Zahlen ja "ganz normal" voneinander abziehen und hast dann die Differenz in Tagen. Das kannst du in Minuten umrechnen (*24*60) und dann problemlos mit 10 vergleichen.
Achtung: aufpassen wegen eventuellen Rundungsfehlern. Es könnte passieren, dass eine Zeitdifferenz von genau 10 Minuten minimal größer oder kleiner wirkt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Urlaub2222
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 06.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.02.2013, 12:06     Titel: Rückfrage zum Serialdate
  Antworten mit Zitat      
Das hat soweit funktioniert, allerdings habe ich noch ein kleines Problem mit dem Serialdate:

Warum funktioniert folgender Code nicht?

ans = datenum('31.01.2013 13:14:44.333','dd.mm.YYYY HH:MM:SS.FFF')

datestr(ans)


ans = 24-Dec-2012 13:14:44

Warum kommt hier der 24 Dezember raus es müsste doch 31 Januar sein. Die Zeit stimmt komischerweise.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.02.2013, 12:15     Titel:
  Antworten mit Zitat      
Hallo,

ich habe es gerade unter 2012b ausprobiert und bekomme das richtige Datum.

ans wird von MATLAB als Zwischenspeicher verwendet. Ich würde stattdessen andere Variablennamen verwenden.

Falls das nicht hilft: welche Version verwendest du?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Urlaub2222
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 06.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.02.2013, 12:23     Titel:
  Antworten mit Zitat      
R2011b (7.12.0.564)

Hier mal direkt das was ich Matlab eingegeben habe:

>> datestr(datenum('31.01.2013 13:14:44.333','dd.mm.YYYY HH:MM:SS.FFF'))

ans =

24-Dec-2012 13:14:44
Private Nachricht senden Benutzer-Profile anzeigen
 
Urlaub2222
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 06.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.02.2013, 12:26     Titel:
  Antworten mit Zitat      
Vorher habe ich clc; clear all; close all;

gemacht.

Wenn explizit in Test schreibe

>> Test=datestr(datenum('31.01.2013 13:14:44.333','dd.mm.YYYY HH:MM:SS.FFF'))

Test =

24-Dec-2012 13:14:44

bekomme ich das selbe Ergebniss.

Werde den Rechner auch mal neu starten....man weiß ja nie^^
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.02.2013, 12:48     Titel:
  Antworten mit Zitat      
Hallo,

ich konnte das Problem nun in einer älteren Version reproduzieren. Beheben kann man es, wenn man das Datumsformat korrekt angibt, also mit kleinen y.
Code:
Test=datestr(datenum('31.01.2013 13:14:44.333','dd.mm.yyyy HH:MM:SS.FFF'))


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Urlaub2222
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 06.02.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.02.2013, 13:03     Titel: Gelöst
  Antworten mit Zitat      
Super, das war das Problem. Jetzt geht es bei mir auch einwandfrei.

Vielen DANK!!!!!!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.