MATLAB: Subscript indices must either be real positive integers or logicals

coding errorfaq

Hello, I'm trying to define the Sherman-Morrison formula:
using the code
invA = A.^(-1)
n=size(A,1)
u=ones(n,1)
Z = 1 + u'*invA*u
inv(A + u*u')=invA – 1/Z * invA * u*u' * invA.
I'm using Z here instead of alpha in the problem. It always returns to an error "Subscript indices must either be real positive integers or logicals". What does it mean? Can somebody help with it??
Matlab new starter here, all help would be appreciated. Thanks heaps!!

Best Answer

There is a more fundamental issue here:
inv(A + u*u')=invA - 1/Z * invA * u*u' * invA
The above line indicates that you need to go over some basic MATLAB tutorials. You can't just type and equation with variables on both sides and solve it like you would in Maple or Mathematica. While:
New = inv(A + u*u')
is a perfectly valid line:
inv(A + u*u') = New
is not.