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

1 visualización (últimos 30 días)
preet
preet el 6 de Abr. de 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 comentarios
preet
preet el 6 de Abr. de 2013
Editada: preet el 6 de Abr. de 2013
let me know both continue statements are same in matlab and c language
preet
preet el 6 de Abr. de 2013
Editada: preet el 6 de Abr. de 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

Iniciar sesión para comentar.

Respuesta aceptada

Friedrich
Friedrich el 6 de Abr. de 2013
Editada: Friedrich el 6 de Abr. de 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 comentarios
preet
preet el 6 de Abr. de 2013
thanx for reply. but dear friedrich i already incremented j, problem is something else.
Cedric
Cedric el 6 de Abr. de 2013
Editada: Cedric el 6 de Abr. de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by