Error ''Array indices must be positive integers or logical values.'' when putting interval of 0.01 in a for loop
79 views (last 30 days)
Show older comments
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
plot(x,y)
This is the entire code, nothing more
0 Comments
Answers (3)
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)
0 Comments
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
0 Comments
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)
0 Comments
See Also
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!