在 Matlab 中连接二元运算符如“3 + + 2”不会出错

Contatenation of binary operators like "3 + + 2" in Matlab does not give errors

如果我计算这个表达式:

3 + + 2

3 + + + + + + 2

结果我得到5

如果我还插入 - 运算符,我也会得到一个结果(在本例中为 1):

3 + - + - + - 2

本来以为运算符之间的space可以认为是0,但是如果用times运算符,反而报错:

3 * * 2 % Error: Unexpected MATLAB operator.

发生了什么事?此语法的含义是什么?为什么它适用于 +- 而不适用于 *

为什么这是有效的语法?

我正在使用 Matlab R2014a。

+- 可以是二进制或 unary 运算符。 *只能是二进制。

在您的代码中,第一个符号之后的所有 +- 符号可能都被解析为一元运算符。所以 3 + - 2 被解释为 3 + (-2)+ 是二元的,- 是一元的)。同样,3 - + - 2被解释为3 - (+-2),即3 - (-2).

这不适用于 *,因为它不能是一元运算符。