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

how to use while loop

Asked by Sharen H on 23 Nov 2012

i have written a code to find the mod and dividend values of an image.if i

use while loop its getting executed continuously with out stop..can any one

help me where i am wrong...Thanks in advance

share = [250 250 ]

k=ceil(log(250)/log(5));

[r,c]=size(share)

for m= 1:r

        for n = 1:c
        while  share(m,n)>=0
            digits=mod(share(m,n),5)
             share(m,n)=ceil(share(m,n)/5)
        end
    end
end

0 Comments

Sharen H

Tags

Products

No products are associated with this question.

2 Answers

Answer by Walter Roberson on 23 Nov 2012

Suppose share(m,n) was 1. Then 1/5 is 0.2 and ceil(0.2) is 1. Opps, infinite loop!

0 Comments

Walter Roberson
Answer by Matt Fig on 23 Nov 2012
Edited by Matt Fig on 23 Nov 2012

Think about this for a second: share(m,n) is initially positive. Then you repeatedly divide it by 5 in the inner while loop. How do you expect to ever get share(m,n) to be negative simply by dividing it by 5? But that is exactly what is needed to break that inner while loop....

For all x > 0: x/5 > 0, correct? So of course x/5 >= 0

0 Comments

Matt Fig

Contact us