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

bsxfun mit for schleife

 

Subotai
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 18.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2013, 13:12     Titel:
  Antworten mit Zitat      
Hallo,

vielen Dank, aber es ändert sich nichts wenn ich >= wähle.

Den Grund habe ich gefunden, nur noch keine Abhilfe

1/(24*60)*10 = 0069444444444
daran liegt es; Wird falsch gerundet, Egal wie ich es in Matlab eingebe, ich komme immer nur mit etwa 1% Fehlergenauigkeit an den richtigen Wert
Siehst Du eine Möglichkeit dies anders zu schreiben. Ginge es dies über meine 2 for Schleifen oder komme ich bei jeden Ansatz an den Punkt, dass ich einen solchen Bruch wie oben drin habe? Wenn ja müsste ich wohl oder übel einen Fehleraufschlag draufrechnen, wäre sicher aber nur die B-Lösung.

vielen Dank und viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 29.07.2013, 13:18     Titel:
  Antworten mit Zitat      
Subotai hat Folgendes geschrieben:
Wird falsch gerundet

was meinst du mit "falsch gerundet"?

Code:
for k=1:144
    c{k}=datestr((k-1)*1/(24*60)*10,'HH:MM:SS')
end

liefert genau die zeiten die ich möchte. gerundet wird da nix. jedenfalls nicht falsch ^^
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.07.2013, 13:26     Titel:
  Antworten mit Zitat      
Hallo Subotai,

Matklab rundet ganz sicherlich nicht "falsch", sondern entsprechend den IEEE754 Regeln und entsprechend der aktuell eingestellten FloatingPoint Einheit des Prozessors. Die Ergebnisse sind also genau so, wie man sie erwarten sollte.
Deshalb ghehe ich davon aus, dass "falsch runden" ein Problem bei Deinen Erwartungen ist. Welchen Wert erwartest Du denn? Eine Abweichung von 1% ist meiner Ansicht nach nicht möglich.

Natürlich muss man bei Floating-Point-Berechnungen die entstehenden Rundungsfehler mit berücksichtigen. Da führt kein Weg vorbei.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Subotai
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 18.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2013, 13:26     Titel:
  Antworten mit Zitat      
Ja genau das meinte ich, es gibt gewisse Abweichungen
hier bei dem Wert von 48795 zu 48705 . Und ich meinte Promille und nicht Prozent, Entschuldigung.

Also kann ich dies so akzeptieren und das Resultat mit einem gewissen Aufschlag versehen?

Nochmal vielen Dank.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 29.07.2013, 13:45     Titel:
  Antworten mit Zitat      
das ist ein unterschied von 90 und du solltest schon rausfinden was du bei beiden verfahren anders machst. zufällige abweichungen sind in dem code den du bis jetzt geliefert hast meiner meinung nach in den größenordnungen nicht drin außer du dividierst irgendwo durch nen kleinen wert. oder die daten leigen doch anders vor als du sie beschrieben hast oder du machst bei excel was anders ^^ einfach einen aufschlag drauf setzen ohne das du weist warum würd ich nicht machen. du kannst doch ganz einfach nachvollziehen welche werte matlab aufsummiert. und das dann mit deinem excel vergleichen. da muss doch rauszufinden sein wo der hund begraben liegt. und wo die abweichungen auftreten.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.07.2013, 13:48     Titel:
  Antworten mit Zitat      
Hallo Subotai,

Zitat:
Also kann ich dies so akzeptieren und das Resultat mit einem gewissen Aufschlag versehen?

Das lässt sich nicht allgemein beantworten, da es auf das jeweilige Problem ankommt. Rundungsfehler liegen üblicherweise im Bereich 1e-16, so dass "Promille" schon ausgesprochen riesig ist. Aber solche Effekt können z.B. auftreten, wenn "Auslöschung" ins Spiel kommt:
Code:
1e17 + 1 - 1e17 - 1

Auch hier ist der absolute Fehler gigantisch, aber der relative Fehler müsste die größten auftretenden Operanden berücksichtigen und damit wäre die Abweichung vernachlässigbar.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Subotai
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 18.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2013, 14:25     Titel:
  Antworten mit Zitat      
Den Vergleich habe ich bereits gemacht Bereich einzeln markiert und Summe: Excel gibt das selbe wie Matlab
geh ich über den Code weicht das Resultat mehr oder minder stark ab, mal nach oben mal nach unten
in einen Intervall ist es mir geglück den selben Wert zu bekommen wie bei der manuellen Summe, ich habe hierfür 0,006945 eingegeben, für die anderen Intervalle jedoch wird es mit dem Wert nicht exakter. D.h Fehlerkorrektur dürfe hier auch nichts bringen

Ohne den Bruch kann ich die Bereichszuweisung nicht realsieren, oder?
Dankeschön

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

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 29.07.2013, 14:43     Titel:
  Antworten mit Zitat      
der bruch ist genauer als deine komma zahl und entspricht 10 min. das sihst du auch oben bei meiner rücktransformation. der fehler liegt irgendwo anders bin ich der meinung.
gieb mal jetzt die variante an die du benutzt (code, lauffähig) und eine beispiel excel die den fehler reproduziert sonst rate ich hier nur rum Smile
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Subotai
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 38
Anmeldedatum: 18.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2013, 20:38     Titel:
  Antworten mit Zitat      
Vielen Dank
Problem jetzt gelöst
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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.