MATLAB: Why is the code not working

help

I'd like to get the index (i) for wich the condition I set in the foor loop appears on the results
Fm0= linspace(0.01,0.02,100);
%ciclo iterativo
for i=1:100
for Fm= (0.25).*(((log((2.7*10^-5)+(2.51.*((Rey.*sqrt(Fm0).^-1))))).^-1).*((log((2.7*10^-5)+(2.51.*((Rey.*sqrt(Fm0).^-1)))))).^-1)
if Fm(i)-Fm0<=10^-6
break
end
end
end

Best Answer

  • Fm0 = linspace(0.01,0.02,100);
    Fm= (0.25).*(((log((2.7*10^-5)+(2.51.*((Rey.*sqrt(Fm0).^-1))))).^-1).*((log((2.7*10^-5)+(2.51.*((Rey.*sqrt(Fm0).^-1)))))).^-1)
    i = find( Fm-Fm0 <= 10^-6, 1);
    You will find that the answer is 1 -- Fm0(1) > Fm(1) so the subtraction is negative and so satisfies the condition.
    You might perhaps have been thinking,
    i = find( abs(Fm-Fm0) <= 10^-6, 1);
    but you will find that this is empty.