2.1.5 运算符
MATLAB运算符可分为三大类,它们是算术运算符、关系运算符和逻辑运算符。下面分类给出它们的运算符和运算法则。
1.算术运算符
算术运算因所处理的对象不同,分为矩阵和数组算术运算两类。表2-2给出的是矩阵算术运算的符号、名称、示例和使用说明,表2-3给出的是数组算术运算的运算符号、名称、示例和使用说明。
表2-2 矩阵算术运算符
表2-3 数组算术运算符
针对表2-2和表2-3需要说明几点:
(1)矩阵的加减、乘运算是严格按矩阵运算法则定义的,而矩阵的除法虽和矩阵求逆有关系,但却分了左、右除,因此不是完全等价的。乘幂运算更是将标量幂扩展到矩阵可作为幂指数。总的来说,MATLAB接受了线性代数已有的矩阵运算规则,但又不仅止于此。
(2)表2-3中并未定义数组的加减法,是因为矩阵的加减法与数组的加减法相同,所以未做重复定义。
(3)不论是加减乘除,还是乘幂,数组的运算都是元素间的运算,即对应下标元素一对一的运算。
(4)多维数组的运算法则,可依元素按下标一一对应参与运算的原则将表2-3推广。
2.关系运算符
MATLAB关系运算符列在表2-4中。
表2-4 关系运算符
需要明确指出的是,MATLAB的关系运算虽可看成矩阵的关系运算,但严格地讲,把关系运算定义在数组基础之上更为合理。因为从表2-4所列法则不难发现,关系运算是元素一对一的运算结果。数组的关系运算向下可兼容一般高级语言中所定义的标量关系运算。
3.逻辑运算符
逻辑运算在MATLAB中同样需要,为此MATLAB定义了自己的逻辑运算符,并设定了相应的逻辑运算法则,如表2-5所示。
表2-5 逻辑运算符
同样地,MATLAB的逻辑运算也是定义在数组的基础之上,向下可兼容一般高级语言中所定义的标量逻辑运算。
为提高运算速度,MATLAB还定义了针对标量的先决与和先决或运算。先决与运算是当该运算符的左边为1(真)时,才继续与该符号右边的量做逻辑运算。先决或运算是当运算符的左边为1(真)时,就不需要继续与该符号右边的量做逻辑运算,而立即得出该逻辑运算结果为1(真);否则,就要继续与该符号右边的量运算。
4.运算符的优先级
和其他高级语言一样,当用多个运算符和运算量写出一个MATLAB表达式时,运算符的优先次序是一个必须明确的问题。表2-6列出了运算符的优先次序。
表2-6 MATLAB运算符的优先次序
MATLAB运算符的优先次序在表2-6中依从上到下的顺序,分别由高到低。而表中同一行的各运算符具有相同的优先级,而在同一级别中又遵循有括号先括号运算的原则。