Change for-loop iteration inside the loop.
    32 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
Dear Matlab users,
I would like to change the For-loop iteration inside the loop if a condition is met. Suppose:
for i = 1:500
  pause(0.1)
  display(i)
  if i == 40
     i = 300;
  end
end
So, I want whenever i == 40, the iteration changes from 39 to 300 and continues till 500. The code above does not work and every time the loop resets the i value. What I want should look like this:
i = 1, 2, 3, ... 39, 300, 301, 302, 303, ... 500.
1 Kommentar
  Himanshu Nagpal
 am 14 Jun. 2016
				You can use the following code
i = 1;
while (i <= 500) 
    pause(0.1)
    display(i)
    i = i + 1;
    if (i == 40)
        i = 300;
     end
end
Antworten (3)
  Roger Stafford
      
      
 am 10 Okt. 2013
        
      Bearbeitet: Roger Stafford
      
      
 am 10 Okt. 2013
  
      Matlab's for-loop is designed so that you cannot change its index, in this case, 'i', within the loop. Even though you have set it to 300, it will stubbornly return on the next trip with i = 41, not 300. To do what you indicate here you should do this instead:
 for i = [1:39,300:500]
  pause, etc ...
 end
If a change in indexing cannot be predicted in advance of entering a for-loop you should use the 'while-end' construct instead where you must control the index yourself instead of an automatic advance at each step. Either that or if you want to sudden depart ahead of time from a for-loop, use the 'break' function.
2 Kommentare
  Sachin Patil
 am 20 Sep. 2016
        Please see this code
i = 1;
for j = 1:500
pause(0.1)
display(i)
i = i + 1;
if i == 40
     i = 300;
end
end
2 Kommentare
  Hector Cano
 am 14 Feb. 2020
        clc;clear;close all
n=[1 1 100];
while (n(1) <= n(3)) 
    j(n(1))=n(1);
    if (n(1) == 50)
        n(2) = 10;
    end
    n(1) = n(1) + n(2);
     if (n(1)==n(3))
         n(3)=200;
     end
end
j(j==0)=nan;
plot(j,'*-r')
0 Kommentare
Siehe auch
Kategorien
				Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!






