```Date: Sep 12, 2013 4:54 PM
Author: Curious
Subject: Re: Help with while loop

"Yutthana Jeenjiu" <jimmyj79@iinet.net.au> wrote in message <l0so6n\$g3n\$1@newscl01ah.mathworks.com>...> Please help with trying to make the while loop work> > e   =0.0015;> D   =50;> V   =2;> Dm  =0.05;> v   =1.01*10^-6;> Re  = V*Dm/v;> N   =1000;> f   = linspace(0.008,0.1,N);> > i   = 0;> f_abs = 1;> FF = 0.008;>   > while FF(end) < f_abs;>     i = i + 1;>     FF = log(e/D/3.7 + 2.51*Re*sqrt (f(i)))*sqrt(f(i))*-2;> end> > My aim is to iterate through f until the equation or FF is equal to 1 or less than .001 away from 1. > Please note i am a beginner user and have no prior programming knowledge% I don't have MATLAB installed on this computer, so I can't try to run your code.% It would help if you said WHY you think the loop is not working % (error message, endless loop, etc.).% Here are some things I can point out:while FF(end) < f_abs;% should simply be:while FF < f_abs;FF = log(e/D/3.7 + 2.51*Re*sqrt (f(i)))*sqrt(f(i))*-2;% is not correct, the *-2 at the end should give you an error.% Perhaps you mean:FF = -2*log(e/D/3.7 + 2.51*Re*sqrt (f(i)))*sqrt(f(i));% The code will crash if i becomes greater than length(f)% (assuming the while loop still doesn't terminate).% One way around this would be to rewrite the loop as:% N   =1000;% f   = linspace(0.008,0.1,N);f = 0.008;% i   = 0;f_abs = 1;FF = 0.008;while FF < f_abs%     i = i + 1;%     FF = log(e/D/3.7 + 2.51*Re*sqrt (f(i)))*sqrt(f(i))*-2;        FF = -2*log(e/D/3.7 + 2.51*Re*sqrt (f))*sqrt(f);        f = f + 0.1;end% This may still be an endless loop, but it shouldn't crash.% Do you perhaps mean:while abs(FF) < f_abs% instead?> > Thanks Jimmy
```