Main Content

运算符优先级

您可以构建使用算术运算符、关系运算符和逻辑运算符的任意组合的表达式。优先级别用来确定 MATLAB® 计算表达式时的运算顺序。处于同一优先级别的运算符具有相同的运算优先级,将从左至右依次进行计算。下表显示了 MATLAB 运算符的优先级规则,顺序从最高优先级别到最低优先级别:

  1. 圆括号 ()

  2. 转置 (.')、幂 (.^)、复共轭转置 (')、矩阵幂 (^)

  3. 带一元减法 (.^-)、一元加法 (.^+) 或逻辑求反 (.^~) 的幂,以及带一元减法 (^-)、一元加法 (^+) 或逻辑求反 (^~) 的矩阵幂。

    注意

    尽管大多数运算符都从左至右运行,但 (^-)(.^-)(^+)(.^+)(^~)(.^~) 按从右至左顺序从第二个运行。建议您使用括号显式指定包含这些运算符组合的语句的期望优先级。

  4. 一元加法 (+)、一元减法 (-)、逻辑求反 (~)

  5. 乘法 (.*)、右除 (./)、左除 (.\)、矩阵乘法 (*)、矩阵右除 (/)、矩阵左除 (\)

  6. 加法 (+)、减法 (-)

  7. 冒号运算符 (:)

  8. 小于 (<)、小于或等于 (<=)、大于 (>)、大于或等于 (>=)、等于 (==)、不等于 (~=)

  9. 按元素 AND (&)

  10. 按元素 OR (|)

  11. 短路 AND (&&)

  12. 短路 OR (||)

AND 和 OR 运算符的优先级

MATLAB 始终将 & 运算符的优先级指定为高于 | 运算符。尽管 MATLAB 通常按从左到右的顺序计算表达式,但表达式 a|b&ca|(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

相关主题