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

 Respuesta aceptada

KALYAN ACHARJYA
KALYAN ACHARJYA el 19 de Mayo de 2019
Editada: KALYAN ACHARJYA el 19 de Mayo de 2019

0 votos

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 comentarios

Franco Belletti
Franco Belletti el 19 de Mayo de 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)
KALYAN ACHARJYA
KALYAN ACHARJYA el 19 de Mayo de 2019
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 el 19 de Mayo de 2019
crystal clear thanks!
KALYAN ACHARJYA
KALYAN ACHARJYA el 19 de Mayo de 2019
Welcome @Franco If your question is answered, you can give credit to the answer by accepting it.

Iniciar sesión para comentar.

Más respuestas (1)

madhan ravi
madhan ravi el 19 de Mayo de 2019
Editada: madhan ravi el 19 de Mayo de 2019

1 voto

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')

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 19 de Mayo de 2019

Editada:

el 19 de Mayo de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by