Subscript indices must either be real positive integers or logicals?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Nearlight_lovegym
el 4 de Mzo. de 2018
Respondida: Ahmet Cecen
el 4 de Mzo. de 2018
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!!
0 comentarios
Respuesta aceptada
Ahmet Cecen
el 4 de Mzo. de 2018
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.
0 comentarios
Más respuestas (2)
Image Analyst
el 4 de Mzo. de 2018
People ask about this all the time and so there is a FAQ entry for it.
The error is well explained in the FAQ: http://matlab.wikia.com/wiki/FAQ#How_do_I_fix_the_error_.22Subscript_indices_must_either_be_real_positive_integers_or_logicals..22.3F
0 comentarios
Image Analyst
el 4 de Mzo. de 2018
This is not proper syntax:
inv(A + u*u') = invA - 1/Z * invA * u*u' * invA
You can't have operations on the left hand side of an equals sign. It can only be a variable that you want to send the right hand side into.
0 comentarios
Ver también
Categorías
Más información sobre Calendar en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!