Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

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

Asked by preet on 6 Apr 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 Comments

preet on 6 Apr 2013

my code is too long dear...thats why i did not paste here.

preet on 6 Apr 2013

let me know both continue statements are same in matlab and c language

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

preet

Products

No products are associated with this question.

1 Answer

Answer by Friedrich on 6 Apr 2013
Edited by Friedrich on 6 Apr 2013
Accepted answer

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 on 6 Apr 2013

thanx for reply. but dear friedrich i already incremented j, problem is something else.

Cedric Wannaz 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.

Friedrich

Contact us