I should make an iterative cylce, yet when trying to run it gives me this error
Array indices must be positive integers or logical values.
for i= linspace(0.0001,0.0009,1000)
Fm= (0.25).*(((log((2.7*10^-5)+(2.51.*((Rey.*sqrt(i).^-1))))).^-1).*((log((2.7*10^-5)+(2.51.*((Rey.*sqrt(i).^-1)))))).^-1);
if Fm(i)-Fm(i+1)<= abs(10^-6)
break
end
end

 Réponse acceptée

KALYAN ACHARJYA
KALYAN ACHARJYA le 19 Mai 2019
Modifié(e) : KALYAN ACHARJYA le 19 Mai 2019

0 votes

i= linspace(0.0001,0.0009,1000)
%.................^ ...........^............
Array indices must be non zero positive integer
like
linspace(1,1,1000)
Aprat from the above issue there is undefined function or variable 'Rey'. Ensure that it is there in your complete code.

4 commentaires

Franco Belletti
Franco Belletti le 19 Mai 2019
I don't think the problem is the linspace as it gives me the row with values I need Rey is ofcourse defined in my code, but the problem regards the loop, I'd like to know what does the eror mean, again that being
Array indices must be positive integers or logical values. which particulary refers to my If cylce
if Fm(i)-Fm(i+1)<= abs(10^-6)
I have answered based on the error
Array indices must be positive integers or logical values.
With this line space i= linspace(0.0001,0.0009,1000)
if Fm(i)-Fm(i+1)<= abs(10^-6)
This does not work
Say i=0.0001, that is first value
Fm(i)>>Fm(0.0001) does it have any menaing
%...^................^ ...these are called indices of an array, it must be non zero positive interger.
Franco Belletti
Franco Belletti le 19 Mai 2019
crystal clear thanks!
KALYAN ACHARJYA
KALYAN ACHARJYA le 19 Mai 2019
Welcome @Franco If your question is answered, you can give credit to the answer by accepting it.

Connectez-vous pour commenter.

Plus de réponses (1)

madhan ravi
madhan ravi le 19 Mai 2019
Modifié(e) : madhan ravi le 19 Mai 2019

1 vote

Probably you want (no loops needed):
ii = linspace(0.0001,0.0009,1000);
Fm = (0.25).*(((log((2.7*10^-5)+...
(2.51.*((Rey.*sqrt(ii).^-1))))).^-1).*((log((2.7*10^-5)...
+(2.51.*((Rey.*sqrt(ii).^-1)))))).^-1);
First_encounter = find(abs(Fm(1:end-1)...
-Fm(2:end))<= 1e-6,1,'first')

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by