MATLAB Answers

Why am I getting the error "Array indices must be positive integers or logical values."?

1,522 views (last 30 days)
Yogesh Pai
Yogesh Pai on 5 Dec 2018
Edited: Yogesh Pai on 6 Dec 2018
I want to compare the exponential of matrix A obtained by the summation formula and the one with the eigen values. However, I'm getting the following error when exponential is computed with the diagonalised form (E here).
"Array indices must be positive integers or logical values."
A = [1,2,1,3; 3,1,2,0; 2,2,1,4; 1,3,2,1];
[V,D] = eig(A);
exp_A = 0;
for k = 0:100
exp_A = exp_A + (A^k)/factorial(k);
end
disp(exp_A);
E = V*(exp(D))\V;
disp(E);

Accepted Answer

Kelly Kearney
Kelly Kearney on 5 Dec 2018
My guess is you have a variable named eig sitting in your workspace. So when you try to call the eig function, the variable is overshadowing it and matlab is trying to extract the 1st, 2nd, 1st, 3rd, etc. elements from the eig array. The attempt to extract the 0th element leads to the error.
Always be careful with your choice of variable names!

  1 Comment

Sign in to comment.

More Answers (0)

Sign in to answer this question.

Products