Azzera filtri
Azzera filtri

Regarding Iteration

2 visualizzazioni (ultimi 30 giorni)
Muruganandham Subramanian
Hi all,
for j=1:30
x(:,j) = unifrnd(minsvc(j), maxsvc(j), no_pop,1);
if busdata(j,2)==0
rchoices = size(x(:,j));
randchoice = x(rchoices(1),j);
Qg(j,17)=randchoice;
else
Qg(j,17)=busdata(j,17);
end
v(:,j)=unifrnd(minv(j), maxv(j),no_pop,1);
end
Here, in this if the busdata(j,2)==0 condition is satisfied, i need to execute that if for only once that too for random 'j' values. Is there any solution for this?
  1 Commento
Jan
Jan il 4 Mag 2012
I do not understand the question.

Accedi per commentare.

Risposte (1)

Image Analyst
Image Analyst il 4 Mag 2012
Try adding a break statement:
for j=1:30
x(:,j) = unifrnd(minsvc(j), maxsvc(j), no_pop,1);
if busdata(j,2)==0
rchoices = size(x(:,j));
randchoice = x(rchoices(1),j);
Qg(j,17)=randchoice;
break; % Exit the for loop.
else
Qg(j,17)=busdata(j,17);
end
v(:,j)=unifrnd(minv(j), maxv(j),no_pop,1);
end
However, if j = 42 when the condition becomes true and it breaks, then the for loop has already executed 42 times before it exits, so in that regard, like Jan, I'm a bit confused.
  2 Commenti
Muruganandham Subramanian
If, we give break statement, it will totally come out from the for loop,but i have changed into like this.
for j=1:no_dim
x(:,j)=unifrnd(minsvc(j), maxsvc(j),no_pop,1);
ii=1;
while ii<=no_dim && ii==1
a=1;
b=no_dim;
ij= a + (b-a).*rand(1);
ii=round(ij);
if busdata(j,1)==ii && busdata(ii,2)==0
fprintf('The SVC device is added in: %gth bus\n\n',ii);
rchoices = size(x(:,ii));
randchoice = x(rchoices(1),ii);
fprintf('The optimized SVC rating is: %g Mvar\n\n',randchoice);
Qg(ii,17)=randchoice;
else
Qg(j,17)=busdata(j,17);
end
end
v(:,j)=unifrnd(minv(j), maxv(j),no_pop,1);
% ii=ii+1;
end;
but it still have a problem. for 'ii' it should execute only once. did you understand what exactly my problem is?
Jan
Jan il 4 Mag 2012
I still do not understand the problem.

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by