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

1 view (last 30 days)
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 Comments
preet
preet on 6 Apr 2013
Edited: preet on 6 Apr 2013
let me know both continue statements are same in matlab and c language
preet
preet on 6 Apr 2013
Edited: preet on 6 Apr 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

Sign in to comment.

Accepted Answer

Friedrich
Friedrich on 6 Apr 2013
Edited: Friedrich on 6 Apr 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 Comments
preet
preet on 6 Apr 2013
thanx for reply. but dear friedrich i already incremented j, problem is something else.
Cedric
Cedric on 6 Apr 2013
Edited: Cedric on 6 Apr 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.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!