# Error ''Array indices must be positive integers or logical values.'' when putting interval of 0.01 in a for loop

205 views (last 30 days)
Rinalds on 2 Jan 2024
Answered: Dyuman Joshi on 2 Jan 2024
I get an error ''Array indices must be positive integers or logical values.' when i'm trying to execture a for loop with an interval of 0.01, however when the interval is 1, everything is fine. The problem may stem from it not allowing negative numbers in the array.
y = [];
x = [];
for i = 0:0.1:2
x(i+1) = i
y(i+1) = i*i + 3*i - 4
end
x = 0
y = -4
Array indices must be positive integers or logical values.
plot(x,y)
This is the entire code, nothing more

Dyuman Joshi on 2 Jan 2024
The problem stems from the use of 0 and non-integer values as indices.
As the error message states - Arrays indices in MATLAB must be positive integers (or logical values).
You can vectorize your code -
i = 0:0.1:2;
x = i;
y = i.*i + 3*i - 4;
plot(x,y)

Vignesh on 2 Jan 2024
Hi Rinalds,
You are encountering this error because you are giving a decimal as index of an array in the for loop. You may try changing the following line according to the number of times you want to iterate the loop.
for i = 0:0.1:2

Alan Stevens on 2 Jan 2024
More like this:
k = 0:0.1:2;
n = numel(k);
for i = 1:n
x(i) = k(i);
y(i) = k(i)*k(i) + 3*k(i) - 4;
end
plot(x,y)

### Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!