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

1.650e+003 != 1650?

 

Erano1
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 26.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2016, 22:32     Titel: 1.650e+003 != 1650?
  Antworten mit Zitat      
Hallo,

wie am Titel zu erkennen habe ich gerade ein Problem mit der Darstellung der Zahlen in Matlab.

Code:
D.u=tg_out.OutputLog(ta/Ts-Ts*Tu+1:(te/Ts-ta/Ts)-Tu,4)


Wird der Wert für (te/Ts-ta/Ts)-Tu = 2200 und der vordere 1 ist alles wunderbar, aus dem Outputlog 2200 Werte (1:2200) in D.u gespeichert.
Allerdings kommt es vor, dass das Ergebnis für (te/Ts-ta/Ts)-Tu mit 1.650e+003 angegeben wird und in diesem Fall keine 1650 Werte, sondern nur 1649 Werte gespeichert werden. Dies ist aber nur der Fall wenn innerhalb der Funktion der Wert für (te/Ts-ta/Ts)-Tu in der Form ...e+003 gespeichert wird.

Außerhalb einer Funktion entspricht 1:1.650e+003 auch wieder einem Vektor mit 1650 Werten, wieso in der Funktion nicht?

Wäre sehr dankbar wenn jemand damit schon einmal Erfahrung gemacht hat, und mir dafür eine Erklärung geben kann.

Viele Grüße,
Erano1
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: 16.08.2016, 23:03     Titel:
  Antworten mit Zitat      
Hallo,

es kann bei solchen Berechnungen zu Rundungsfehlern kommen.
(te/Ts-ta/Ts)-Tu ist dann vielleicht 1649.9999997, was gerundet eben der von dir beobachtete Wert ist.
Mit
Code:
kannst du dir mehr Dezimalstellen anzeigen lassen.

Wie wäre es mit round , um im Falle von Rundungsfehlern auf den nächsten Integer zu kommen?

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 26.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.08.2016, 11:59     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank schon einmal für deine Antwort.
Vorab schon mal: mit round funktioniert es und es werden 1650 Werte gespeichert.

Allerdings ist der Wert glatt 1.650000000000000e+03. Wenn man den Wert kopiert und die Bestimmung von D.u manuell im Befehlsfenster durchführt kommen auch die 1650 Werte zustande.

Programm arbeitet wie es soll, lustig finde ich es trotzdem Very Happy

Viele Grüße,
Erano1
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: 17.08.2016, 16:35     Titel:
  Antworten mit Zitat      
Hallo,

probier mal noch format hex. Beispiel:

Code:
format long
a = 0.1 + 0.1 + 0.1
0.3
a == 0.3
format hex
a
0.3


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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 59
Anmeldedatum: 26.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.08.2016, 19:04     Titel:
  Antworten mit Zitat      
Hallo,

leider verstehe ich nicht worauf du hinaus möchtest Very Happy Mittlerweile habe ich überall da wo dynamisch berechnet werden soll welch Werte genommen werden soll "round" benutzt, und damit funktioniert alles einwandfrei Smile

Grüße,
Erano1
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: 20.08.2016, 20:05     Titel:
  Antworten mit Zitat      
Hallo,

darauf, dass Zahlen selbst dann ungleich sein können, wenn sie mit
Code:

gleich aussehen.

Grüße,
Harald
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.