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

时间:2016-01-23 03:33:06

标签: matlab syntax binary-operators

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

3++4

评估为7。更令人不安的是:

3+-5

评估为-2

考虑到以下情况,我预计

3+*5

评估为15.相反,它会抛出错误。

可能的决议与thewaywewalk对Why is a trailing comma in a cell array valid Matlab syntax?

上一个问题的答案有关

2 个答案:

答案 0 :(得分:4)

+-不仅是二元运算符,它们也是一元运算符。

文档:

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

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

答案 1 :(得分:2)

因为Matlab的operator precedenceunary plus放在binary plus之上。

因此,

3++4

被解析为

plus(3,uplus(4))