首页 > 编程笔记

MATLAB运算符(算术运算符、关系运算符和逻辑运算符)

MATLAB 提供了丰富的运算符,能满足用户的各种应用,这些运算符包括算术运算符、关系运算符和逻辑运算符 3 种。

算术运算符

MATLAB 语言的算术运算符如表 1 所示。

表 1 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 所示。

表 2 MATLAB语言的关系运算符
运算符 定义
== 等于
~= 不等于
> 大于
>= 大于等于
< 小于
<= 小于等于

逻辑运算符

MATLAB 语言进行逻辑判断时,所有非零数值均被认为真,而零为假。在逻辑判断结果中,判断为真时输出 1,判断为假时输出 0。

MATLAB 语言的逻辑运算符如表 3 所示。

表 3 MATLAB语言的逻辑运算符
运算符 定  义
& 或 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 种运算符中,算术运算符优先级最高,关系运算符次之,而逻辑运算符优先级最低。

在逻辑运算符中,“非”的优先级最高,“与”和“或”有相同的优先级。

推荐阅读