Can I change the loop size inside the loop?

9 vues (au cours des 30 derniers jours)
sakib shalehin
sakib shalehin le 16 Avr 2018
Modifié(e) : Stephen23 le 16 Avr 2018
for i=1:s
statements
end
here,can i change the value of s inside the loop.
  1 commentaire
Birdman
Birdman le 16 Avr 2018
Where is your entire code?

Connectez-vous pour commenter.

Réponses (1)

David Fletcher
David Fletcher le 16 Avr 2018
Modifié(e) : David Fletcher le 16 Avr 2018

For loop conditions are set upon entering the loop and the only form of modification that can be made is to 'break' out of the loop early. If you need a indeterminate loop duration use a while loop where the loop condition is checked upon every iteration. From the for loop docs:

Avoid assigning a value to the index variable within the loop statements. The for statement overrides any changes made to index within the loop

Although this only explicitly mentions the loop index variable, it also extends to the end counter:

s=5;
for iter=1:s
    iter
    s=3;
end

>> test

iter =

     1

iter =

     2

iter =

     3

iter =

     4

iter =

     5

As can be see, the attempt to assign 3 to the loop end condition has been ignored

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by