Array indices must be positive integers or logical values.

My code keeps outputting this error:
i = 0;
x1 = xi - f(xi)./df(xi);
while abs(f(x1)) > precision
i = i + 1;
x1 = xi - f(x1)/df(xi)
end
  • Array indices must be positive integers or logical values.
Can anyone suggest a fix?

 Akzeptierte Antwort

madhan ravi
madhan ravi am 31 Mai 2020

0 Stimmen

f & df should be a function handle , can't see how you defined so it might be the issue.

Weitere Antworten (1)

Image Analyst
Image Analyst am 31 Mai 2020

0 Stimmen

You're passing in x1 and xi as array indexes. These are most likely floating point numbers, not integers or logical values. See the FAQ for a thorough discussion: https://matlab.fandom.com/wiki/FAQ#.22Subscript_indices_must_either_be_real_positive_integers_or_logicals..22

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by