为什么在 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))
为什么这是一个有效的 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))