为什么在 MATLAB 中连续使用多个二元运算符?

Why do multiple binary operators in a row work in MATLAB?

为什么这是一个有效的 MATLAB 查询?

3++4

计算结果为 7。更令人不安的是:

3+-5

计算为 -2

鉴于以下情况,我预计

3+*5

求值为 15。相反它会抛出一个错误。

可能的解决方案与 thewaywewalk 对我之前在

的问题的回答有关

+- 不仅是二元运算符,而且还是一元运算符。

文档:

http://de.mathworks.com/help/matlab/ref/uplus.html http://de.mathworks.com/help/matlab/ref/uminus.html

出于这个原因,前两行被计算为 3+(+4)3+(-5) 但最后一行失败,因为不存在一元乘法。

因为 Matlab 的 operator precedence places the unary plus above binary plus.

因此,

3++4

被解析为

plus(3,uplus(4))