inv(A) versus /A. Which of the two is the correct one

6 ビュー (過去 30 日間)
ektor
ektor 2015 年 2 月 12 日
コメント済み: Stephen23 2015 年 2 月 13 日
Hi all,
Let B be a n by 2 matrix and A is a 2 by 2 positive definite matrix. Which of the following two is correct
for i=1:n
B(i,:)*inv(A)*B(i,:)';
end
or
for i=1:n
(B(i,:)/A)*B(i,:)';
end
Best, Stef
  1 件のコメント
Stephen23
Stephen23 2015 年 2 月 13 日
Don't use a loop, learn to vectorize your code. Matt J's answer shows this.

サインインしてコメントする。

回答 (1 件)

Matt J
Matt J 2015 年 2 月 12 日
Both are equivalent. For large matrices the 2nd would be more efficient.
Further efficiency would be gained by vectorizing. The whole loop is just,
sum( (B/A).*B, 2)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by