Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

while loop not doing what i want?

1 Ansicht (letzte 30 Tage)
Jimmy Jeenjiu
Jimmy Jeenjiu am 12 Sep. 2013
Geschlossen: MATLAB Answer Bot am 20 Aug. 2021
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
Trying to iterate through f until FF is equal to 1 or within a range of 0.001 form 1 in this case its f_abs. Please keep explanation simple as i am a new user with no programming knowledge
Thank you in advance James
[EDITED, Jan, Please apply a proper code formatting - thanks]
  1 Kommentar
Jan
Jan am 12 Sep. 2013
You forgot to ask a question. It is not clearly explain what you want. We see the code, we see what the code does, but we cannot know, what you expect instead.
"FF(end)" looks like you want to store the results in a vector. But the code overwrite the scalar FF in each iteration.

Antworten (2)

A Jenkins
A Jenkins am 12 Sep. 2013
Your FF never approaches 1. Perhaps you have an error in your function?

Jan
Jan am 12 Sep. 2013
What about:
FF = -2 * log(e/D/3.7 + 2.51 * Re * sqrt(f)) * sqrt(f);
firstmatch = find(FF >= f_abs - 0.001, 1);
FF(firstmatch)

Diese Frage ist geschlossen.

Community Treasure Hunt

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

Start Hunting!

Translated by