运算符优先级
您可以构建使用算术运算符、关系运算符和逻辑运算符的任意组合的表达式。优先级别用来确定 MATLAB® 计算表达式时的运算顺序。处于同一优先级别的运算符具有相同的运算优先级,将从左至右依次进行计算。下表显示了 MATLAB 运算符的优先级规则,顺序从最高优先级别到最低优先级别:
圆括号
()转置
(.')、幂(.^)、复共轭转置(')、矩阵幂(^)带一元减法
(.^-)、一元加法(.^+)或逻辑求反(.^~)的幂,以及带一元减法(^-)、一元加法(^+)或逻辑求反(^~)的矩阵幂。注意
尽管大多数运算符都从左至右运行,但
(^-)、(.^-)、(^+)、(.^+)、(^~)和(.^~)按从右至左顺序从第二个运行。建议您使用括号显式指定包含这些运算符组合的语句的期望优先级。一元加法
(+)、一元减法(-)、逻辑求反(~)乘法
(.*)、右除(./)、左除(.\)、矩阵乘法(*)、矩阵右除(/)、矩阵左除(\)加法
(+)、减法(-)冒号运算符
(:)小于
(<)、小于或等于(<=)、大于(>)、大于或等于(>=)、等于(==)、不等于(~=)按元素 AND
(&)按元素 OR
(|)短路 AND
(&&)短路 OR
(||)
AND 和 OR 运算符的优先级
MATLAB 始终将 & 运算符的优先级指定为高于 | 运算符。尽管 MATLAB 通常按从左到右的顺序计算表达式,但表达式 a|b&c 按 a|(b&c) 形式计算。对于包含 & 和 | 组合的语句,比较好的做法是使用括号显式指定期望的语句优先级。
该优先级规则同样适用于 && 和 || 运算符。
覆盖默认优先级
可以使用括号覆盖默认优先级,如以下示例中所示:
A = [3 9 5];
B = [2 1 5];
C = A./B.^2
C =
0.7500 9.0000 0.2000
C = (A./B).^2
C =
2.2500 81.0000 1.0000