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

Fehlermeldung beim Runden

 

sanny
Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 14.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2015, 08:31     Titel: Fehlermeldung beim Runden
  Antworten mit Zitat      
Hallo zusammen,

ich habe mir jetzt die Dokumentation von Mathworks über runden 25 mal durchgelesen und kann nicht feststellen was ich falsch machen könnte.
Ich habe sogar einfach mal das Beispiel das darin enthaltenist kopiert und bei mir in Command Window eingefeugt, bringt auch eine Fehlermeldung.
Code:


Fehlermeldung ist: Error using round
Too many input arguments.

Was läuft denn da schief?

Gruss

Sanny
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: 23.10.2015, 09:21     Titel:
  Antworten mit Zitat      
hast du in der online dokumentation gelesen oder in der dokumentation zu deiner version?
hast du den round befehl irgendwo überschrieben ?
Code:

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
sanny
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 14.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2015, 09:28     Titel:
  Antworten mit Zitat      
Habe es in der Online Dokumentation gelesen. Jetzt habe ich es dann aber auch mal in der in meiner Version nachgelesen. Da steht nichts davon. Dann scheint da wohl nicht zu funktionieren??
Die Frage waere dann allerdings wie ich auf das Ergebnis komme das der Befehl aus der Online Doku beschreibt.?

Gruss

Sanny
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 23.10.2015, 09:28     Titel:
  Antworten mit Zitat      
R2015b auf Win7 64 Bit:

Code:

Y = round(pi,3)
Y =
    3.1420
 


Wie vom Vorredner gesagt nur spezifischer:

Code:

which round -all
built-in (C:\Program Files\MATLAB\R2015b\toolbox\matlab\elfun\@double\round)     % double method
% usw
 


Falls etwas anderes zuerst kommt könnte es eine Überlagerung einer Variable oder Funktion namens "round" sein.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
sanny
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 14.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2015, 09:38     Titel:
  Antworten mit Zitat      
Hey,
danke fuer eure antworten!

Ich muss aber ehrlich sagen das ich nicht so ganz verstehe was ihr mir damit sagen moechtet. Muss ich etwas in den Einstellungen aendern?

Gruss

Sanny
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: 23.10.2015, 10:09     Titel:
  Antworten mit Zitat      
wenn das ergebniss nicht so aussiht wie andreas gepostet hat dann hast du irgendwo eine funktion oder variable geschrieben die auch round heist und den original round befehl überlagert.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
sanny
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 14.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2015, 10:23     Titel:
  Antworten mit Zitat      
Ah ok, jetzt ich es verstanden.
Und ihr habt recht, es gibt noch andere Befehle die mit round zusammen haengen.\
Danke fuer eure Hilfe.
Jetzt muss ich nur noch rausfinden damit ich es schaffe matlab den richtigen round zu verwenden.
Die anderen stehen im Overloaded methods:.
Gibt es da eine Moeglichkeit ihn diese ignorieren zu lassen ohne sie zu loeschen?

Gruss

Sanny
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 23.10.2015, 11:28     Titel:
  Antworten mit Zitat      
Es gäbe diese Möglichkeit, aber ich würde sie ungerne publizieren, da sie einfach zu risikoreich ist.

Bitte einfach nie nie nie eine Variable "round" nennen, oder eine eigene Funktion.

Nie!

Auch nicht "plot" oder "help" oder oder oder.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
sanny
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 14.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2015, 11:38     Titel:
  Antworten mit Zitat      
Ok, wird wohl so besser sein.
Dann muss ich es auf einem anderen Weg versuchen auf meine gewuenschte Stelle zu runden.

Danke

Gruss

Sanny
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: 24.10.2015, 14:38     Titel: Re: Fehlermeldung beim Runden
  Antworten mit Zitat      
Hallo sanny,

Ich habe mir diesen Thread durchgelesen und finde irgendwie den Punkt nicht.

Zitat:
Code:

Fehlermeldung ist: Error using round
Too many input arguments.

Das bedeutet eindeutig nicht, dass "round" als Name einer Variablen verwendet wurde oder die falsche overloaded Methdoe gewählt wurde (was ja prinzipiell nicht möglich ist), sondern dass eine ältere Matlab-Version verwendet wird, in der round noch kein 2.tes Input Argument entgegengenommen hat.

Dann gib es einen einfachen Workaround:
Code:
function Y = round(X, n)
switch nargin
  case 1
    Y = builtin('round', X);
  case 2
    F = 10 .^ n;
    Y = builtin('round', X .* F) ./ F;
  otherwise
    error('Workaround:Round:BadNInput', ...
             '1 or 2 inputs accepted.');
end

Dies habe ich z.B. in einen Ordner gelegt, der unter Matlab 2011b mit im Pfad steht, allerdings vor den Matlab-Toolboxen. Nun kann ich unter dieser älteren Matlab-Version die moderne Rundungs-Methode nutzen, ohne in meinen Code Krücken einzubauen, die in modernen Matlab-Versionen überflüssig wären.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 14.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2015, 08:34     Titel:
  Antworten mit Zitat      
Hallo Jan,

ich habe jetzt mal versucht deinen Function zu verwenden.
Leider ist es das selbe Ergebnis.

Code:
>> Y = round(pi,3)
Error using round
Too many input arguments.


Es kann natürlich gut sein das ich noch immer etwas falsch mache. Confused

Gruss

Sanny
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: 27.10.2015, 12:47     Titel:
  Antworten mit Zitat      
Hallo sanny,

Wo hast Du die funktion gespeichert und wie hast Du den Pfad in dem Matlab-PATH gehängt?
Was bekommst Du für
Code:

?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 14.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2015, 12:57     Titel:
  Antworten mit Zitat      
Die Funktion habe ich bei meinen anderen Skripten und Funktionen gespeichert, da ich diese einfach mal ausprobieren wollte wie sie funktioniert.
Bei
Code:


bekomme ich erst mal alle build ins und dann noch 2 die im C Pfad gesichert sind.

Gruss

Sanny
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: 27.10.2015, 13:14     Titel:
  Antworten mit Zitat      
Hallo sanny,

Bitte poste das Ergebnis des which Befehls. Das ist besser als die Ergebnisse nur in Worten nachzuerzählen.

Bitte lies meine Antwort genau durch. Dort steht:
Zitat:
Dies habe ich z.B. in einen Ordner gelegt, der unter Matlab 2011b mit im Pfad steht, allerdings vor den Matlab-Toolboxen.

Wenn man wirklich eine Funktion aus den Matlab-Toolboxen mit einer eigenen überschreiben will, muss sie in einem Ordner vor den Toolbox-Ordnern liegen. Andernfalls wird sie nur aufgerufen, wenn sie im aktuellen Ordner liegt.

Wenn Dich das verwirrt, lasse es unbedingt bleiben. Denn das "Shadowing" von built-in Funktionen ist tückisch. Wenn man z.B. strcmp mit einer Version überschreibt, die einen Bug hat, startet Matlab gar nicht mehr richtig! Die Reparatur ist dann nicht trivial.

Speichere die aufgebohrte "round" Funktion also lieber als "roundX" oder so ähnlich ab. Das ist zwar weniger elegenat, falls Du mal auf eine moderne Matlab-Version upgradest. Aber das geschieht ja vielleicht nicht in den nächsten Wochen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 14.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.10.2015, 14:36     Titel:
  Antworten mit Zitat      
Hallo Jan,

vielen dank fuere deine Antwort.
Ich danke das ich es dann lieber mal lasse, das wird mir dann wirklich etwas kompliziert und dafuer kenne ich mich einfach nicht gut genug aus.

Gruss

Sanny
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.