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