|
marvin.be |

Forum-Fortgeschrittener
|
 |
Beiträge: 54
|
 |
|
 |
Anmeldedatum: 28.08.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2013b
|
 |
|
|
 |
|
Verfasst am: 27.10.2015, 10:51
Titel: for loop zurücksetzen
|
 |
Hi Leute,
ich schreibe mir momentan ein kleines Programm zurecht bei dem der User ein paar Kriterien auswählen soll. Zwischendurch wird man dann mal gefragt ob das bisherige Ergebnis soweit passt oder eben nicht. Ist die Aussage negativ, so soll die Berechnung wiederholt werden. Schematischer Code wie folgt:
Leider meckert MatLab und denkt das Zurücksetzen des Index k sei ein Fehler und überspringt die Zeile. Ich will aber, sobald der User "N" eingibt, dass die Berechnung neu ausgeführt wird. Wie implementiert man sowas in MatLab? Würde man dafür auf "while" zurückgreifen? Habe bislang keine zündende Idee.
Gruß,
Marvin
|
|
|
|
|
Mmmartina |

Forum-Meister
|
 |
Beiträge: 745
|
 |
|
 |
Anmeldedatum: 30.10.12
|
 |
|
 |
Wohnort: hier
|
 |
|
 |
Version: R2020a
|
 |
|
|
 |
|
Verfasst am: 27.10.2015, 11:03
Titel: Re: for loop zurücksetzen
|
 |
marvin.be hat Folgendes geschrieben: |
Leider meckert MatLab und denkt das Zurücksetzen des Index k sei ein Fehler und überspringt die Zeile.
|
Er meckert nicht und denken tut Matlab schon gar nicht. Überspringen wird Matlab eine Zeile, wenn sie einen Fehler enthält garantiert nicht, sondern mit Fehlerangabe abbrechen.
Möglicher Fehlergrund könnte das mangelnde End nach dem else sein.
Ansonsten lassen sich die Zählvariablen der for-schleife nicht so manipulieren. D.h. du kannst sie zwar verändern, aber beim nächsten Durchlauf wird der nächste Wert genutzt, nicht der von dir veränderte.
marvin.be hat Folgendes geschrieben: |
Würde man dafür auf "while" zurückgreifen? |
Ja, while wäre hier Mittel der Wahl.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
|
|
|
marvin.be |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 54
|
 |
|
 |
Anmeldedatum: 28.08.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2013b
|
 |
|
|
 |
|
Verfasst am: 27.10.2015, 17:33
Titel:
|
 |
Danke, funktioniert!
MatLab gibt keinen Fehlercode aus, sondern markiert die entsprechende Zeile mit einem orangen Zeichen und der Code bleibt weiter ausführbar. Wie von dir geschrieben verwendet MatLab den nicht veränderten Index weiter und ignoriert meine Manipulation.
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 27.10.2015, 18:18
Titel:
|
 |
Zitat: |
Avoid assigning a value to the index variable within the loop statements. The for statement overrides any changes made to index within the loop. |
das steht auch so in der dokumentation ^^
_________________
richtig Fragen
|
|
|
|
|
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.
|
|