【发布时间】:2020-09-13 18:27:31
【问题描述】:
让我们创建两个随机矩阵,
A = randn(2)
B = randn(2)
inv(A)*B 和 A\B 给出相同的结果
inv(A)*B
A\B
ans =
0.6175 -2.1988
-0.7522 5.0343
ans =
0.6175 -2.1988
-0.7522 5.0343
除非我乘以某个因子。这是为什么呢?
.5*A\B
.5*inv(A)*B
ans =
1.2349 -4.3977
-1.5045 10.0685
ans =
0.3087 -1.0994
-0.3761 2.5171
这很烦人,因为 MatLab 总是提示我使用 A\B 而不是 inv(A)*B,而且我花了好几年才弄清楚为什么我的代码不起作用。
【问题讨论】:
-
0.5*(A\B) !!你在做 (0.5*A)\B!
-
供参考:mathworks.com/help/matlab/matlab_prog/operator-precedence.html。请注意“在每个优先级中,运算符具有相同的优先级,并且从左到右进行评估。”
标签: matlab matrix-multiplication matrix-inverse