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

Möchte eine Zeitdifferenz ermitteln, merkwürdiges Verhalte

 

Matnoob
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 01.05.15
Wohnort: ---
Version: r2012a
     Beitrag Verfasst am: 14.01.2016, 18:12     Titel: Möchte eine Zeitdifferenz ermitteln, merkwürdiges Verhalte
  Antworten mit Zitat      
Hallo,
ich möchte die vergangene Zeit zwischen zwei Datumsangaben ermitteln, leider ich das Verhalten von Matlab nicht nachvollziehen.
Im ersten Bild ist die Differenz richtig ermittelt


beim zweiten nicht


und beim dritten ist es wieder richtig


Ich habe jedes mal den workspace gelöscht und alles andere ist auskommentiert.
Kann mir einer sagen wo der Fehler liegt? Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.01.2016, 19:04     Titel:
  Antworten mit Zitat      
Hallo,

poste doch bitte grundsätzlich deinen Code statt Screenshots davon. Sonst müsste man ja alles abtippen, um das Problem nachvollziehen zu können.

Meine Vermutung ist, dass du floor statt round nehmen müsstest.

Seit Release R2014b gibt es übrigens die Datentypen datetime und (calendar)duration, die das alles automatisch machen.
Auch in vorherigen Releases sollte sich das eleganter lösen lassen.

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 01.05.15
Wohnort: ---
Version: r2012a
     Beitrag Verfasst am: 14.01.2016, 20:38     Titel:
  Antworten mit Zitat      
hier ist der Code
Code:
% richtiger Wert
b=datenum('02.02.2012;07:15','dd.mm.yyyy;HH:MM');   % anfang
a=datenum('02.02.2012;09:45','dd.mm.yyyy;HH:MM');   % ende

% falscher Wert
% b=datenum('02.02.2012;07:15','dd.mm.yyyy;HH:MM');   % anfang
% a=datenum('02.02.2012;08:45','dd.mm.yyyy;HH:MM');   % ende

[num2str(round((a-b)*24)),datestr(a-b,':MM')]


Ich habe leider nur r2012, aber ich probiere es gleich mal mit floor aus.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.01.2016, 21:59     Titel:
  Antworten mit Zitat      
Hallo,

einfacher wäre dann wohl
Code:


Schreibe doch in dein Profil die verwendete Version, damit man das bei späteren Fragen gleich berücksichtigen kann.

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 01.05.15
Wohnort: ---
Version: r2012a
     Beitrag Verfasst am: 15.01.2016, 10:07     Titel:
  Antworten mit Zitat      
Danke für deine Antworte, leider funktioniert deine Lösung nur innerhalb eines Tages, für einen längeren Zeitraum habe ich das Problem mit [num2str((a-b)*24)]
gelöst.
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.