- n = 1 if all A values are non-negative
- otherwise n = smallest integer such that n*5+A(jj) is non-negative for all jj?
ending FOR loop and starting over
    9 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Jernej Primozic
 am 12 Jul. 2022
  
    
    
    
    
    Kommentiert: Walter Roberson
      
      
 am 13 Jul. 2022
            Hi.
I am building a program where I am summing two values. one is just a number and another is an array
KAP = 5;
n = 1
BAT;
A = [5 10 -5 -7 12 -7 18];
for jj = 1:length(A)
    BAT = KAP*n + A(jj)
    if BAT < 0
        n = n+1
end
end
So i dont know what to do so the value n would increase and also the program should start again at the beggining. So the BAT value is at the end never under 0. Can you help me please i tried with continue and also break and return but still i dont get the right resoult
1 Kommentar
  Walter Roberson
      
      
 am 12 Jul. 2022
				Do I understand correctly that the desired output is:
If so then I would suggest to you that in finding n you only need to pay attention to min(A)
Akzeptierte Antwort
  Anay Aggarwal
      
 am 12 Jul. 2022
        Hi Jernej,
I have an understanding that you want to run the loop for calculating the value of BAT and whenever it is negative then n->n+1 and the loop should start from beginning so that BAT is never under zero at the end of the loop.
As per my understanding, when you are checking for the condition of BAT to be negative, in it you can increase n and redeclare jj=1
KAP = 5;
n = 1
BAT;
A = [5 10 -5 -7 12 -7 18];
for jj = 1:length(A)
    BAT = KAP*n + A(jj)
    if BAT < 0
        n = n+1
        jj=1;
    end
end
Hope this helps.
Regards
2 Kommentare
  Bharat Chandra Mukkavalli
      
 am 12 Jul. 2022
				Hi Anay,
When you try to update the 'jj' inside the for loop, MATLAB will throw a warning and the value will not be updated. 
Please check it once.
  Walter Roberson
      
      
 am 13 Jul. 2022
				It is valid to change the for loop variable. However the change will be ignored if any more iterations would normally have occurred.
Weitere Antworten (1)
  Bharat Chandra Mukkavalli
      
 am 12 Jul. 2022
        Hi, 
I have gone through your code, would you please explain the purpose of the if condition in the for loop?
In the code, the cumulative sum is not being stored and only the value of the n is being updated when the BAT value is less than zero. The final value stored in BAT is KAP*n + A(end).  
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!



