Subscript indices must either be real positive integers or logicals?

2 ビュー (過去 30 日間)
Nearlight_lovegym
Nearlight_lovegym 2018 年 3 月 4 日
回答済み: Ahmet Cecen 2018 年 3 月 4 日
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!!

採用された回答

Ahmet Cecen
Ahmet Cecen 2018 年 3 月 4 日
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.

その他の回答 (2 件)

Image Analyst
Image Analyst 2018 年 3 月 4 日
People ask about this all the time and so there is a FAQ entry for it.

Image Analyst
Image Analyst 2018 年 3 月 4 日
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.

カテゴリ

Help Center および File ExchangeCalendar についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by