MATLAB Answers

0

'Array indices must be positive integers or logical values' error

Asked by Emily Gallagher on 28 Sep 2019
Latest activity Answered by Raunak Gupta on 1 Oct 2019
I keep getting the 'Array indices must be positive integers or logical values' error specifically n=f(i).
f = (2000:100:3000);
l = length(f);
tt = zeros(1,1);
y = 4;
for i = i:l
n = f(i);
A = randn(n,n);
b = rand(n,1);
tic()
for j = 1:y %repeat nrep times for more precise timing
[L,U] = lu(A);
y = forwardsub(L,b);
x = backsub(U,y);
end
tt(i) = toc()/y %average recorded time
end

  1 Comment

Should your for-loop be:
for i=1:l

Sign in to comment.

Tags

1 Answer

Answer by Raunak Gupta on 1 Oct 2019

Hi,
The value of i is not initialized and you may start with some numerical value greater than zero at first. Otherwise n = f(i) return error because i is assigned as zero by default and in MATLAB, array indexing starts from 1. Even using logical value ‘true’ and ‘false’, the ‘false’ value will return an empty array instead of throwing an error. So you may try to initialize the looping variable.

  0 Comments

Sign in to comment.