MATLAB 在执行含有关系运算和逻辑运算的数学运算时,同样遵循一套优先级原则。原则规定:MATLAB 首先执行具有较高优先级的运算,其次执行具有较低优先级的运算;如果两个运算的优先级相同,则按从左到右的顺序执行。
一般情况下,在一个表达式中,算术运算符优先级最高,其次是关系运算符,最后是逻辑运算符。如果需要,可以通过括号来改变运算顺序。
MATLAB 中具体的运算符优先级排列如下表所示。
优先级 | 运算符 | 优先级高低 |
---|---|---|
1 | 圆括号 ( ) | |
2 | 矩阵转置和乘方:转置(.')、共轭转置(')、乘方(.^)、矩阵乘方(^) | |
3 | 一元加法(+)、—元减法(-)、取反(~) | |
4 | 乘法(.*)、矩阵乘法(*)、右除(./)、左除(./)、矩阵右除(/)、矩阵左除(/) | |
5 | 加法(+)、减法(-)、逻辑非(~) | |
6 | 冒号运算符(:) | |
7 | 小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(==)、不等于(~=) | |
8 | 逐元素逻辑与(&) | |
9 | 逐元素逻辑或(|) | |
10 | 避绕式逻辑与,或者捷径逻辑与(&&) | |
11 | 避绕式逻辑或,或者捷径逻辑或(||) |
用过其他编程语言的用户可以知道,上表中的优先级顺序与大多数计算机编程语言基本相似。用户可以使用括号任意改变上表的运算优先级顺序,但同一级括号内部仍遵循上表中的优先级顺序。
可以利用下面的代码验证逻辑与&和逻辑或|的优先级:
>> 4|2&1
ans =
1
>> 5|(3&2)
ans =
1