MATLAB提供了丰富的运算符,能满足用户的各种应用。这些运算符包括算术运算符、关系运算符和逻辑运算符3种。本节将简要介绍各种运算符的功能。
MATLAB语言的算术运算符如表2-4所示。
表2-4 MATLAB语言的算术运算符
其中,加、减、乘、除及乘方运算与传统意义上的加、减、乘、除及乘方类似,用法基本相同,而点乘、点乘方等运算有其特殊的一面。点运算是指元素点对点的运算,即矩阵内元素和元素之间的运算。点运算要求参与运算的变量在结构上必须是相似的。
MATLAB的除法运算较为特殊。对于简单数值而言,算术左除与算术右除也不同。算术右除与传统的除法相同,即 a / b = a ÷ b ;而算术左除则与传统的除法相反,即 a \ b = b ÷ a 。对矩阵而言,算术右除 A / B 相当于求解线性方程 X*B = A 的解;算术左除 A \ B 相当于求解线性方程 A*X = B 的解。点左除与点右除与上面点运算相似,是变量对应元素进行左除或右除。
关系运算符主要用于对数与数、矩阵与数、矩阵与矩阵进行比较,返回表示二者关系的由数0和1组成的矩阵,0和1分别表示不满足和满足指定关系。
MATLAB语言的关系运算符如表2-5所示。
表2-5 MATLAB语言的关系运算符
MATLAB语言进行逻辑判断时,所有非零数值均被认为真,而零为假。在逻辑判断结果中,判断为真时输出1,判断为假时输出0。
MATLAB语言的逻辑运算符如表2-6所示。
表2-6 MATLAB语言的逻辑运算符
下面结合实例,详细介绍MATLAB语言的逻辑运算符。
(1)&或and:逻辑与。两个操作数同时为1时,结果为1,否则为0。例如:
>> 1&1 ans = logical 1 >> and(5,0) ans = logical 0
(2)|或or:逻辑或。两个操作数同时为0时,结果为0,否则为1。例如:
>> 0|0 ans = logical 0 >> or (0,0) ans = logical 0 >> or (0,1) ans = logical 1
(3)~或not:逻辑非。当操作数为0时,结果为1,否则为0。例如:
>> ~pi ans = logical 0 >> not(0) ans = logical 1
(4)xor:逻辑异或。两个操作数相同时,结果为0,否则为1。输入格式为C=xor(A,B.)。例如:
>> xor(0,1) ans = logical 1
(5)any:有非零元素则为真。输入格式为B=any(A);B=any(A,dim)。例如:
>> any(15) ans = logical 1 >> any(logical(5),logical(5)) ans = logical 1
(6)all:所有元素均非零则为真。输入格式为B=all(A);B=all(A,dim)。例如:
>> all(15) ans = logical 1
在算术、关系、逻辑3种运算符中,算术运算符优先级最高,关系运算符次之,而逻辑运算符优先级最低。在逻辑运算符中,“非”的优先级最高,“与”和“或”有相同的优先级。