Matlab

Hallo,
ich habe irgendwie ein Problem mit Abrunden:
und zwar möchte ich eine gerade Anzahl bekommen z.B.
3/1.3 =2
Ich habe das bis jetzt mit floor (3/1.3) realisiert.
Aber in diesem Fall floor(3.3/1.1) gibt mir dieser Befehl nur 2 aus, wo meines Wissens nach, die 1.1 3-mal in 3.3 enthalten ist.
Wäre für ihre Vorschläge dankbar.
Olga.

Hallo Olga,

ich habe irgendwie ein Problem mit Abrunden:
und zwar möchte ich eine gerade Anzahl bekommen z.B.
3/1.3 =2
Ich habe das bis jetzt mit floor (3/1.3) realisiert.
Aber in diesem Fall floor(3.3/1.1) gibt mir dieser Befehl nur
2 aus, wo meines Wissens nach, die 1.1 3-mal in 3.3 enthalten
ist.

Was sollte den rauskommen, 3 oder soll er dann gleich auf die nächste Gerade Zahl ab- bzw. aufrunden?

Kenn mich mit matlab nicht wirklich aus, aber vielleicht hilf dir das weiter:
http://www.mathworks.com/access/helpdesk/help/techdo…

„floor(A) rounds the elements of A to the nearest integers less than
or equal to A. For complex A, the imaginary and real parts are
rounded independently.“

Ich denk mal bei der Berechnung erhält matlab 2.9999999999 und rundet zu der nächst kleineren integer ab, also 2. Ich würds mal mit round versuchen.

Gruß

Sebastian

Hallo Sebastian,
das Problem beim round ist dass er zwar rundet aber nicht das was ich will z. B. round(3.4/2) ergibt 2 wobei die zwei nur einmal in 3.4 enthalten ist.
Ich habe mir auch gedacht das er auf 2.9999999999 kommt und deswegen kein richtiges Ergebnis liefert.
Schade , immer noch keine Lösung

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Olga!

das Problem beim round ist dass er zwar rundet aber nicht das
was ich will z. B. round(3.4/2) ergibt 2 wobei die zwei nur
einmal in 3.4 enthalten ist.

Vielleicht klappt’s damit:
Führe die Rechnung aus, runde auf die 1. Nachkommastelle und schneide erst dann ab. das sollte eigentlich hinhauen…

Gruß,
Martin

Das ganze ist mir wirklich rätselhaft:
Wenn ich einfach 3.3/1.1 ausrechne gibt er mir auch 3.0000 aus. Wenn ich floor(3.3/1.1) berechnen will gibt er mir 2 aus. floor(3.000) ergibt aber 3. Auch wenn ich zuerst dividiere und dann floor anwende ist das Ergebnis falsch. Anzahl=3.3/1.1; floor(Anzahl) ergibt auch 2.
Ich verstehe das nicht.
Danke.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Das ganze ist mir wirklich rätselhaft:
Wenn ich einfach 3.3/1.1 ausrechne gibt er mir auch 3.0000
aus. Wenn ich floor(3.3/1.1) berechnen will gibt er mir 2 aus.
floor(3.000) ergibt aber 3. Auch wenn ich zuerst dividiere und
dann floor anwende ist das Ergebnis falsch. Anzahl=3.3/1.1;
floor(Anzahl) ergibt auch 2.
Ich verstehe das nicht.

ohne mathlab zu kennen, vermute ich als programmierer einfach mal, dass er bei der zuweisung anzahl= den typen von anzahl auf integer festlegt, und das ein floor(3) einfach mal 2 ergibt.

kannst du den typen fuer anzahl festlegen - auf float, od. eine bestimmt anzahl kommastellen? oder kannst du global vorgeben, mit welcher genauogkeit operationen ausgefuehrt werden?

Ich habe jetzt die Anzahl der Nachkommastellen auf 16 vergrößert, und trotzdem bekomme ich ein falsches Ergebnis.
Danke für die Mühe.
Olga

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]