【问题标题】:matlab and octave operator precedence of mldivide: a*A\b gives (a*A)^-1*b instead of a*inv(A)*bmldivide的matlab和八度运算符优先级: a*A\b 给出 (a*A)^-1*b 而不是 a*inv(A)*b
【发布时间】:2018-05-12 15:32:18
【问题描述】:

使用八度,与 d*FT\N 给出 (d*FT)^-1*N 而不是预期的 d*(FT\N)

有关演示,请参阅http://tpcg.io/1En0tS

这在 Matlab 中是否相同? 如果不是,我应该提交错误报告吗?

【问题讨论】:

  • 这可能不是你想要的,但你的期望是通过知道正确的公式来控制的。如果您是第一次看到该代码,您可能会有不同的期望。

标签: matlab octave operator-precedence inverse


【解决方案1】:

Octave 行为似乎与 the Matlab documentation 匹配:

在每个优先级中,运算符具有相同的优先级,并且从左到右进行计算。

乘法和除法运算符都在一个优先级中:

乘法(.*)、右除法(./)、左除法(.\)、矩阵乘法(*)、矩阵右除法(/)、矩阵左除法(\ )

【讨论】:

  • 谢谢。事实上,我认为这个决定是一个不幸的遗产:通常我会将任何A^-1 替换为 A\。最好用(A\..)替换它。
猜你喜欢
  • 2015-11-14
  • 2014-03-29
  • 1970-01-01
  • 1970-01-01
  • 2019-08-07
  • 2021-11-28
  • 2021-10-06
  • 1970-01-01
  • 2019-10-27
相关资源
最近更新 更多