is 'continue' in 'c' language similar in MATLAB??

2 vues (au cours des 30 derniers jours)
preet
preet le 6 Avr 2013
i am changing my code of c language in to matlab .but its gives infinite loop in Matlab during use 'continue' statement?
what is the problem? is there any other alternate of 'continue' statement?
  4 commentaires
preet
preet le 6 Avr 2013
Modifié(e) : preet le 6 Avr 2013
let me know both continue statements are same in matlab and c language
preet
preet le 6 Avr 2013
Modifié(e) : preet le 6 Avr 2013
for i=istart:n
if pnewperCube(i)<=tm
flag=1;
ppnewQR1=pnewQR(i);ppnewQG1=pnewQG(i);ppnewQB1=pnewQB(i);
ppnewperR1=pnewperR(i); ppnewperG1=pnewperG(i);ppnewperB1=pnewperB(i);
jmin=1;
while j<=n
if j==i
continue;
end
ppnewQR2=pnewQR(j);ppnewQG2=pnewQG(j);ppnewQB2=pnewQB(j);
dist2=abs(ppnewQR1-ppnewQR2)+abs(ppnewQG1-ppnewQG2)+abs(ppnewQB1-ppnewQB2);
if distmin>dist2
distmin=dist2;
jmin=j;
end
j=j+1;
end %j loop
ppnewQR2=pnewQR(jmin);ppnewQG2=pnewQG(jmin);ppnewQB2=pnewQB(jmin);
ppnewperR2=pnewperR(jmin);ppnewperG2=pnewperG(jmin);ppnewperB2=pnewperB(jmin);
XrP=floor(((ppnewQR1*ppnewperR1)+(ppnewQR2*ppnewperR2))/(ppnewperR1+ppnewperR2));
XgP=floor(((ppnewQG1*ppnewperG1)+(ppnewQG2*ppnewperG2))/(ppnewperG1+ppnewperG2));
XbP=floor(((ppnewQB1*ppnewperB1)+(ppnewQB2*ppnewperB2))/(ppnewperB1+ppnewperB2));
. . . . .
end
end

Connectez-vous pour commenter.

Réponse acceptée

Friedrich
Friedrich le 6 Avr 2013
Modifié(e) : Friedrich le 6 Avr 2013
Hi,
yes continue in MATLAB is the same as in C. However when I look at that while loop:
while j<=n
if j==i
continue;
end
this can`t even work in C. If j == i you will hit an endless loop because j never changes. Maybe you are missing to increment j before the continue statement?
  2 commentaires
preet
preet le 6 Avr 2013
thanx for reply. but dear friedrich i already incremented j, problem is something else.
Cedric
Cedric le 6 Avr 2013
Modifié(e) : Cedric le 6 Avr 2013
No, the problem is precisely here. You increment j after the conditional statement, so your code is looping between the WHILE and the CONTINUE, without ever incrementing j. It would be the exact same in C, unless you had a j++ in either condition.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

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

Community Treasure Hunt

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

Start Hunting!

Translated by