|
graviton |

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 22.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.04.2013, 00:25
Titel: Rekurive Funktion
|
 |
Hallo, hier ebenfalls Fehlermeldung. Es geht dabei um die rekursive Darstellung des Fakultäts (n!), also (n+1)! = (n+1)*n!, 1!=1.
Jetzt soll eine rekursive Funktion geschrieben werden, die n! für natürliche n bestimmt. Ich habe folgendes:
Fehlermeldung:
Error: File: factorial.m Line: 1 Column: 37
Unexpected MATLAB Operator.
Kann den Fehler überhaupt nicht nachvollziehen, dieses Programm treibt einen nich in den Wahnsinn!
Danke & Grüße!
|
|
|
|
|
Thomas84 |

Forum-Meister
|
 |
Beiträge: 546
|
 |
|
 |
Anmeldedatum: 10.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.04.2013, 06:46
Titel:
|
 |
Die Fehlermeldung ist doch nicht schlecht. In Zeile 1 ist irgendein Zeichen/Operation die da nicht hingehört. Welche könnte das sein? Schau dir doch mal an wie man funktionen in Matlab definiert.
viele Grüße
Thomas
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 23.04.2013, 08:42
Titel:
|
 |
Hallo Thomas,
Um ganz genau zu sein, ist es laut fehlermeldung das 37.ste Zeichen.
Ich liebe Matlab für seine hilfreichen Fehlermeldungen.
Gruß, Jan
|
|
|
graviton |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 22.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.04.2013, 09:23
Titel:
|
 |
Ich weiss, dass das Pluszeichen sein muss. Aber ich muss ja irgendwie die Funktion definieren können. Wie könnte ich den definitionsgemäß
(n+1)!=(n+1)*n! unterbringen?
Wenn ich in der 1. Zeile "factorial(n)" schreibe, dann habe ich ja eher die Rekursion für n! = n * (n-1)!
Grüße
|
|
|
Andy386 |

Forum-Guru
|
 |
Beiträge: 485
|
 |
|
 |
Anmeldedatum: 24.06.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.1/8
|
 |
|
|
 |
|
Verfasst am: 23.04.2013, 10:00
Titel:
|
 |
Indem du im Programmcode dann fact_resultat(x+1) aufrufst?
Oder die erste Zeile n=n+1 ist?
_________________
Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
|
|
|
graviton |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 22.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.04.2013, 10:15
Titel:
|
 |
Meinst du jetzt so vielleicht:
Aber dann bekomme ich die Fehlermeldung:
Was mache ich den falsch?
|
|
|
jurtsche |

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.04.2013, 11:05
Titel:
|
 |
Dein Problem ist vielleicht, dass du eine matlab funktion überschreiben willst.
factorial ist eine matlab funktion.
benenne sie doch besser in irgendwas anderes um.
|
|
|
graviton |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 22.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.04.2013, 17:13
Titel:
|
 |
Klappt trotzdem nicht! Ich bekomme wieder die selbe Fehlermeldung wie aus meinem Beitrag davor. Ich versuche alles mögliche, aber immer wieder die selbe Meldung, dass es nicht genügend Eingabevariablen gibt's!
Hmmmh....?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 23.04.2013, 23:57
Titel:
|
 |
Hallo graviton,
Es ist etwas umständlich im Forum nach deinem vorherigen Beitrag zu suchen. Ich schlage vor, Du postest den jetzigen Code und eine Kopie der Fehlermeldung. Oder Du versuchst nochmal zu verstehen, was die Fehlermeldung bedeutet: Offenbar wird eine Funktion mit zu wenigen Inputs aufgerufen.
Gruß, Jan
|
|
|
Andy386 |

Forum-Guru
|
 |
Beiträge: 485
|
 |
|
 |
Anmeldedatum: 24.06.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.1/8
|
 |
|
|
 |
|
Verfasst am: 24.04.2013, 14:53
Titel:
|
 |
also, das factorial_2 muss auch in eine gleichnamige m-Datei. Dann kannst du factorial_2(3) aufrufen.
_________________
Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
|
|
|
graviton |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 22.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.04.2013, 21:15
Titel:
|
 |
jurtsche hat Folgendes geschrieben: |
Dein Problem ist vielleicht, dass du eine matlab funktion überschreiben willst.
factorial ist eine matlab funktion.
benenne sie doch besser in irgendwas anderes um.
|
Ich habe das genauso gemacht, also auch die m-Datei in factorial_2 umbenannt, trotzdem bekomme ich die Fehlermeldung:
Error using factorial_2 (line 2)
Not enough input arguments.
|
|
|
jurtsche |

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.04.2013, 21:25
Titel:
|
 |
also wenn du genau die zeile
eingibst, passiert das?
die datei heisst factorial_2.m und du bist in dem ordner in dem die factorial_2.m gespeichert ist?
|
|
|
graviton |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 22.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.04.2013, 22:54
Titel:
|
 |
Wahrscheinlich lag das Problem daran, dass ich nicht den selben File im Current Directory hatte. Ich versuche jetzt die ganze Zeit einen neuen Unterordner anzulegen, für z.B. auch das Fakultätsproblem, aber es geht nicht. Wenn ich bpsw. in Desktop einen neuen Ordner (z.b. "math" anlege und diese in matlab integrieren möchte, mit dem befehl "addpath math", dann bekomme ich folgendes:
Warning: Name is nonexistent or not a directory: I.
> In path at 110
In addpath at 87
Ich bekomme einen neu angelegten Ordner einfach nicht im Verzeichnis-System von matlab integriert. Normalerweise müsste doch eigentlich, sobald man auf der lokalen Festplatte irgendwo einen neuen Ordner anlegt dann über Pfadwechsel in matlab integrieren können, aber es scheint bei mir z.Z. ein Integrationsproblem zu geben.
Das Programm treibt einen noch in den Wahnsinn!
Hätte vllt. jemand einen Tip für mich?
|
|
|
jurtsche |

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.04.2013, 23:06
Titel:
|
 |
hallo,
du kannst pfade im matlab, indem du auf ein verzeichnis mit der rechten maustaste klickst hinzufügen.
add to path with subfolders (oder so ähnlich)
LG
PS: mit addpath musst du den kompletten pfad angeben.
ohne unterordner:
mit unterordner:
|
|
|
graviton |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 33
|
 |
|
 |
Anmeldedatum: 22.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.04.2013, 00:13
Titel:
|
 |
Jo, danke schonmal wegen des Pfadproblems, hat geklappt. Auch factorial_2(3) lässt sich abrufen. Das alles war aber der Fall für
n! = n * (n-1)!. Ich würde aber gerne auch die Rekursion für (n+1)! = (n+1) n! abrufen wollen. Das habe ich ja zu Beginn die ganze Zeit versucht gehabt, bin aber bei Inputarguments gescheitert. Wie könnte ich diese nächst höhere Rekursion eingeben?
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|