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

datestr Tage, Stunden, Minuten, Sekunden

 

BlackDice
Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 05.03.2021, 18:56     Titel: datestr Tage, Stunden, Minuten, Sekunden
  Antworten mit Zitat      
Moin zusammen,

ich kann ja mit tatest einen Sekundenwert in dd:HH:MM:SS umrechnen lassen. Wie kann ich mir das so anzeigen lassen, dass da dd Tage, HH Stunden, MM Minuten, SS Sekunden steht? In der Doku habe ich leider nichts gefunden.

Viele Grüße
Fabian
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 05.03.2021, 20:02     Titel:
  Antworten mit Zitat      
Code:
datestr(WertAlsString ,'DD Tage HH Stunden MM Minuten SS Sekunden')

_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 05.03.2021, 20:33     Titel:
  Antworten mit Zitat      
So habe ich das eingegeben:
Code:
app.EditField.Value = datestr(seconds(282250.6),...
                'DD Tage HH Stunden MM Minuten SS Sekunden' );


Dann bekomme ich aber folgende Fehlermeldung:
Code:
Error using matlab.internal.datetime.cnv2icudf (line 140)
Unrecognized day format.  Format: DD Tage HH Stunden MM Minuten SS Sekunden.

Error in formatdate (line 53)
dtstr = matlab.internal.datetime.cnv2icudf(dtstr,false);

Error in dateformverify (line 35)
S = char(formatdate([y,mo,d,h,minute,s],dateformstr,islocal));

Error in datestr (line 198)
S = dateformverify(dtnumber, dateformstr, islocal);
Private Nachricht senden Benutzer-Profile anzeigen
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 05.03.2021, 20:53     Titel:
  Antworten mit Zitat      
Hast recht - mein denkfehler. Da man diverse Zeichen dazwischen schreiben kann, dachte ich, die Worte gehen bestimmt auch.

Dann bau es dir halt als String zusammen.
Code:

[datestr(A ,'DD','Tage;', datestr(A ,'HH')),'Stunden' , ... ]

_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 06.03.2021, 11:31     Titel:
  Antworten mit Zitat      
Jetzt bekomme ich diesen Fehler:
Code:
Error using datestr (line 165)
Pivot year must be a number.


Wenn ich nur 'Tage' eingebe funktioniert das. Erst wenn ich Stunden dazu schreibe wird der Fehler ausgespuckt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.03.2021, 11:56     Titel:
  Antworten mit Zitat      
Hallo,

die Frage wäre, was du derzeit genau eingibst. Ja sicher nicht den Befehl mit ..., was also dann?

Man muss lediglich auf die Positionierung der Klammern achten:
Code:
A = seconds(282250.6)
t = [datestr(A ,'DD'),' Tage; ', datestr(A ,'HH'),' Stunden']


Ich persönlich finde es übersichtlicher, mit Strings zu arbeiten:
Code:
t = datestr(A ,"DD") + " Tage; " + datestr(A ,"HH") + " Stunden"


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 06.03.2021, 11:58     Titel:
  Antworten mit Zitat      
Ok danke. Der obere Code hat funktioniert. Bin wohl mit den Klammern durcheinander gekommen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

wenn du ein nicht allzu altes Release verwendest, sollte auch der untere Code funktionieren. Wenn du ein älteres Release verwendest, solltest du das dazu schreiben oder noch besser im Profil eintragen, damit man sich mit Vorschlägen danach richten kann.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 06.03.2021, 12:14     Titel:
  Antworten mit Zitat      
Danke habe ich mal gemacht.
Gibt es auch noch irgendwie dir Möglichkeit, dass bei den Tagen die erste 0 nicht mit angezeigt wird. Also "3 Tage" anstatt "03 Tage"?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.03.2021, 16:08     Titel:
  Antworten mit Zitat      
Hallo,

z.B. mit
Code:


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 11.03.2021, 10:19     Titel:
  Antworten mit Zitat      
Ich hab heute nochmal ein bisschen an meiner Zeitangabe gebastelt. Leider habe ich da noch irgendwas übersehen. Die Variable EsMeasTi ist 51.1160 als double in meinem Durchlaufzeit_Field steht dann aber 57 sek.

Code:
if EsMeasTi < 60
                app.Durchlaufzeit_Field.Value = ...
                    [datestr(EsMeasTi,'SS'),' sek '];
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

bisher hast du doch immer seconds verwendet, warum lässt du das nun weg?
Code:
[datestr(seconds(EsMeasTi),'SS'),' sek ']


Generell kann ich nur empfehlen, die Dokumentation zu lesen, wenn eine Funktion nicht das erwartete macht. Wenn ein numerischer Wert an datestr übergeben wird, dann wird das als Tage ab 1.1.0 interpretiert, ist also der 20. Februar 0, gegen 2:47 Uhr.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 11.03.2021, 12:29     Titel:
  Antworten mit Zitat      
Danke.

Harald hat Folgendes geschrieben:
bisher hast du doch immer seconds verwendet, warum lässt du das nun weg?


Weil ich nicht nachgedacht habe Rolling Eyes
Meine Werte für die if Bedingung waren keine Sekunden sondern nur double Werte also habe ich da "seconds" gelöscht und in den anderen Zeilen das auch einfach gelöscht...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.03.2021, 13:00     Titel:
  Antworten mit Zitat      
Hallo,

wenn ich das so sagen darf: Nachdenken kann helfen. Wink
Ein Double ist ja erst mal nur eine Zahl. Diese Zahl kann auf verschiedenste Arten interpretiert werden, z.B. eben Sekunden, aber auch Tage, Meter, Kilogramm und vieles mehr. Der Dokumentation kannst du wie gesagt entnehmen, wie etwas standardmäßig interpretiert wird.
Wenn etwas zunächst wie gewünscht funktioniert und dann nicht mehr, dann ist es generell eine gute Idee, die Änderungen nach und nach wieder rückgängig zu machen, bis es wieder wie gewünscht funktioniert.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDice
Themenstarter

Forum-Century

Forum-Century


Beiträge: 148
Anmeldedatum: 08.12.20
Wohnort: ---
Version: R2020b
     Beitrag Verfasst am: 11.03.2021, 13:07     Titel:
  Antworten mit Zitat      
Ja nachdenken hätte auf jeden Fall geholfen Embarassed

Jetzt muss ich das nur noch mit dem
Code:
hinbekommen und dann ist alles hoffentlich so wie es sein sollte Very Happy
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 - 2024 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.