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

einfache for-schleife erzeugt recursionfehler?

 

neuern223
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 06.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2009, 15:12     Titel: einfache for-schleife erzeugt recursionfehler?
  Antworten mit Zitat      
Hi,
ich wollte ein Programm schreiben, dass bei einer gegebenen Matrize den Maximalwert (größter Zahleneintrag) ermittelt.

Das ganze schaut bei mir so aus:
function minmax = Matrixvergleich(A);
A = [3,4;2,9;1,8];
header (Matrixvergleich);
minA = A(1,1);
maxA = A(1,1);
m = size(A,1);
n = size(A,2);
for ii = 1:m;
for jj = 1:n;
if A(ii,jj) > maxA ...
maxA = A(ii,jj);

end
end
end

disp(['Das groeßte Element ist :' num2str(maxA)]);


Wenn ich die function ausführen will, gibt mir Matlab jedoch einen Fehler aus:
"Maximum recursion limit of 500 reached"

Woran könnte das liegen?

lg
Private Nachricht senden Benutzer-Profile anzeigen


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 06.11.2009, 15:27     Titel:
  Antworten mit Zitat      
Hallo neuern223,

das Problem ist die Zeile
Code:
header(Matrixvergleich)

Die Funktion header kenne ich nicht, aber vermutlich möchtest Du die Überschrift "Matrixvergleich" erzeugen. Das geht eher so:
Code:
header('Matrixvergleich');

Durch Deine Zeile wird die Funktion Matrixvergleich immer wieder rekursiv aufgerufen, ohne dass sich etwas ändert. Irgendwann (nach 500 Mal) wird das Matlab zu oft und die Fehlermeldung erscheint.

Herzliche Grüße
Bijick

PS1: Bitte benutze in Zukunft die Code-Umgebung (siehe den Button über dem Eingabefenster).

PS2: Dir ist vermutlich klar, dass Du den Wert auch so bekommst
Code:
maxA = max(A(:))

_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 06.11.2009, 15:30     Titel:
  Antworten mit Zitat      
Hi, das liegt an der 3. Zeile, da steht: header(Matrixvergleich);

Ich kenne diesen Befehl nicht, mein Matlab kennt ihn nicht. Aber dort wird immer wieder die Funktion Matrixvergleich aufgerufen und irgendwann ist halt das Rekursionslimit erreicht. Also einfach mal weglassen.

Aber mal allgemein zu dem Program, ist das nur ein Lernbeispiel.

Weil maximum finden geht ja ganz einfach mit max bzw. max(max(A)).

Viele Grüße,

der Oli
Private Nachricht senden Benutzer-Profile anzeigen
 
neuern223
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 06.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2009, 15:31     Titel:
  Antworten mit Zitat      
Aah - da hab ich wohl die Anführungszeichen vergessen.
Vielen Dank! Smile

(jap, dass ich die Ausgabe auch einfach mit max(A) erzeugen kann, weiß ich - aber zu Übungszwecken sollten wir das Ganze mal selbst "entwerfen" Wink )

lg neuern
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.