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

Laufvariable in for-Schleife zusätzlich erhöhen

 

eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 10.01.2009, 15:23     Titel: Laufvariable in for-Schleife zusätzlich erhöhen
  Antworten mit Zitat      
Hallo nochmal,

nochmals eine kleine Frage, finde dazu leider nichts in den Tutorials, weil ich eigentlich davon ausgehe, dass mein code richtig ist:

Beispiel:

Code:

for i = 3:10000
 if (x > y)
  fprintf('bla')
  i = i + 100;
 end
end
 


Aber das i wird nicht um 100 erhöht, obwohl die Bedingung wahr ist?!

Gruß,
dan
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: 10.01.2009, 15:49     Titel:
  Antworten mit Zitat      
Die Doku hat genau das Beispiel:

http://www.mathworks.com/access/hel.....help/techdoc/ref/for.html

It is recommended that you do not assign to the loop control variable while in the body of a loop. If you do assign to a variable that has the same name as the loop control variable (see k in the example below), then the value of that variable alternates between the value assigned by the for statement at the start of each loop iteration and the value explicitly assigned to it in the loop code:


Ach, und bitte auf I und J auf Laufvariablen verzichten. Man weiss ja nie, ob man nicht noch einmal komplex rechnen möchte...

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

Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 10.01.2009, 16:04     Titel:
  Antworten mit Zitat      
Danke für die schnelle Hilfe.

Das zeigt mir aber nur, warum mein Code nicht funktioniert, aber nicht, wie ich das Problem lösen (oder besser) umgehen kann?

Was ich möchte: Sobald die if-Bedingung wahr wird, sollen mehrere Schleifendurchläufe übersprungen werden.

Danke und LG,
dan
Private Nachricht senden Benutzer-Profile anzeigen
 
eupho
Themenstarter

Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 10.01.2009, 16:18     Titel:
  Antworten mit Zitat      
Code:
temp1 = 1;
temp2 = 1;
for i = 3:10000
 if ((temp1 == 1) && (x>y))
  temp1 = 0;
  temp2 = i;
 end
 if (i == temp2+30)
  temp1 = 1;
 end
end
 


Sehr umständlich aber klappt, geht das womöglich auch einfacher?
Private Nachricht senden Benutzer-Profile anzeigen
 
eupho
Themenstarter

Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 10.01.2009, 16:43     Titel:
  Antworten mit Zitat      
So, mit einer while-Schleife funktioniert das ohne Probleme.

Trotzdem Danke für die Hilfe!

Gruß,
dan
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 - 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.