使用算术运算符、关系运算符和逻辑运算符的任意组合来进行运算时,需要通过其优先级来确定计算表达式时的运算顺序。处于同一优先级的运算符具有相同的运算优先级,将从左至右依次进行计算。下面给出了MATLAB运算符的优先级规则,从最高优先级到最低优先级依次排列如下。

(1)括号()。

(2)转置(.')、按元素求幂(.^)、复共轭转置(')、矩阵幂(^)。

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



注意

尽管大多数运算符都从左至右参与计算,但(^−)、(.^−)、(^+)、(.^+)、(^~)和(.^~)按从右至左的顺序参与计算,如2.^−2,即−2的平方,先求平方后进行倒数,2.^−2=0.2500。建议使用括号显式指定包含这些运算符组合的语句的期望优先级。



(4)一元加法(+)、一元减法(−)、逻辑非(~)。

(5)按元素乘法(.*)、按元素右除(./)、按元素左除(.\)、矩阵乘法(*)、矩阵右除(/)、矩阵左除(\)。

(6)加法(+)、减法(−)。

(7)冒号运算符(:)。

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

(9)逻辑AND(&)。

(10)逻辑OR(|)。

(11)短路AND(&&)。

(12)短路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


提示

在表达式中,可以使用括号来界定计算的顺序,不必过多考虑运算符号优先级问题。