How to do iteration using while loop?
    2 次查看(过去 30 天)
  
       显示 更早的评论
    
step 1
clc;
gb=3;gs=8;s=gb;b=gs; 
Eg=[50 100 150 175 200 250 300]; 
Egm=mean(Eg);
P=[20 15 10 5 1 0.5 0.1];  
Ns = [];    Nb = [];      Nsb = [];     
for n=1:length(Eg)     
    if Eg(n)>Egm
      Ns = [Ns n];
    elseif Eg(n)<Egm
         Nb = [Nb n];
    else
         Nsb = [Nsb n];
   end
end
step 2
X=(P(Ns)/s)-1 ;    
X=(P(Nb)/b)-1 ;    
X=Eg(Nsb) ;       
for i=1:1:Ns            
for j=1:1:Nb            
Es(i)=Eg(:,i)-X(i) ;
EsL(i)=sum(Es(i));
Eb(j)=X(j)-Eg(:,j) ; 
Eby(j)=sum(Eb(j));
p1=(sum(Eg(i))+Ns); 
p2=(sum(Eg(j))+Nb);
if EsL(i)>Eby(j)  
1s*(i)=sqrt((gb*P(i))/(p1(i))) 
1b*(j)=sqrt((gb*P(j))/(p2(j))) 
end
 elseif EsL(i)<Eby(j)
 2s*(i)=sqrt((gs*P(i))/(p1(i)))  
 2b*(j)=sqrt((gs*P(j))/(p2(j)))  
 else
end
end
end
I have to apply a condition
if s*(k+1)-s*(k)<=0.01,b*(k+1)-b*(k)<=0.01,X(k+1)-X(k)<=0.01
then terminate
else send this updated values to all n and go to step 2
where k is the no of iterations.
How to apply this iterative process using while loop?
0 个评论
回答(1 个)
  Walter Roberson
      
      
 2022-3-28
        k = 1;
while true
    do the stuff for step 2
    if s*(k+1)-s*(k)<=0.01 && b*(k+1)-b*(k)<=0.01 && X(k+1)-X(k)<=0.01; break; end
    send this updated values to all n whatever that means
    k = k + 1;
end
2 个评论
  Walter Roberson
      
      
 2022-3-29
				At the place where my code outline says
do the stuff for step 2
you should insert your code that implements step 2.
At the place where my code outline says
send this updated values to all n whatever that means
you should insert your code that implements
else send this updated values to all n
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

