MATLAB 运算符

MATLAB 运算符

运算符是告诉编译器执行特定数学或逻辑操作的符号。MATLAB设计的主要操作对象是整个矩阵和数组。因此,MATLAB的运算符既适用于标量数据,也适用于非标量数据。MATLAB支持以下几种基本操作类型:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算
  • 集合运算

算术运算符

MATLAB支持两种不同的算术运算:

  • 矩阵算术运算
  • 数组算术运算

矩阵算术运算与线性代数中定义的一样。数组算术运算是按元素执行的,无论是一维数组还是多维数组都可适用。

矩阵运算符和数组运算符之间的区别在于句号(.)符号。但是,由于矩阵和数组的加法和减法操作是相同的,所以运算符在两种情况下是相同的。下表简要描述了这些运算符:

显示示例

序号 运算符及描述
1 +加法或一元加号。A+B将存储在变量A和B中的值相加。A和B必须具有相同的大小,除非其中一个是标量。标量可以加到任意大小的矩阵上。
2 - 减法或一元减号。A-B从A中减去B的值。A和B必须具有相同的大小,除非其中一个是标量。标量可以从任意大小的矩阵中减去。
3 * 矩阵乘法。C = A*B是矩阵A和B的线性代数积。
4 .* 数组相乘。A.*B是数组A和B的逐元素乘积。A和B的大小必须相同,除非其中一个是标量。
5 / 斜线或矩阵右除。B/A大致等同于B*inv(A)。更准确地说,B/A = (A’\B’)’。
6 ./ 数组右除。A./B是由元素A(i,j)/B(i,j)组成的矩阵。A和B的大小必须相同,除非其中一个是标量。
7 \ 反斜线或矩阵左除。如果A是一个方阵,A\B大致等同于inv(A)*B,只是计算方式不同。如果A是一个n乘n的矩阵,B是一个有n个列分量的列向量,或者具有几个这样列的矩阵,则X = A\B是方程AX = B的解。如果A被严重缩放或接近奇异,则显示警告信息。
8 .\ 矩阵左除。A.\B 是元素 B(i,j)/A(i,j) 的矩阵。A 和 B 必须具有相同的大小,除非它们中的一个是标量。
9 ^ 矩阵升幂。X^p 是 X 的 p 次幂,如果 p 是标量。如果 p 是一个整数,则通过重复平方计算幂。如果整数为负数,则首先对 X 进行倒置。对于 p 的其他值,计算涉及特征值和特征向量,例如如果 [V,D] = eig(X),则 X^p = V*D.^p/V。
10 .^ 数组升幂。A.^B 是元素 A(i,j) 的 B(i,j) 次幂的矩阵。A 和 B 必须具有相同的大小,除非它们中的一个是标量。
11 ' 矩阵转置。A’是A的线性代数转置。对于复矩阵,这是复共轭转置。
12 .' 数组转置。A.’是A的数组转置。对于复矩阵,这不涉及共轭。

关系运算符

关系运算符可以在标量和非标量数据上进行操作。数组的关系运算符在两个数组之间进行逐元素比较,并返回一个大小相同的逻辑数组,其中元素设置为逻辑值1(true),表示关系为真,在关系不成立的地方设置为逻辑值0(false)。

以下表格显示了MATLAB中可用的关系运算符:

显示示例

编号 运算符及其描述
1 < 小于
2 <= 小于等于
3 > 大于
4 >= 大于等于
5 == 等于
6 ~= 不等于

逻辑运算符

MATLAB提供了两种类型的逻辑运算符和函数−

  • 逐元素 − 这些运算符对应逐元素操作逻辑数组。

  • 短路 − 这些运算符对标量和逻辑表达式进行操作。

逐元素逻辑运算符在逻辑数组上逐个元素进行操作。符号&、|和~分别表示逻辑数组运算符AND、OR和NOT。

短路逻辑运算符允许在逻辑操作上进行短路操作。符号&&和||分别表示逻辑短路运算符AND和OR。

显示示例

位运算

位运算符对位进行操作并进行逐位操作。&、|和^的真值表如下所示−

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

假设A = 60; B = 13; 现在以二进制格式表示如下 –

A = 0011 1100

B = 0000 1101

-—————-

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A = 1100 0011

MATLAB提供了各种位操作函数,如’位与’,’位或’和’位非’操作,移位操作等。

以下表格显示了常用的位操作 –

显示示例

函数 目的
bitand(a, b) 对整数 a 和 b 进行位与运算
bitcmp(a) 对 a 进行位求反运算
bitget(a,pos) 在整数数组 a 中获取指定位置 pos 的比特位
bitor(a, b) 对整数 a 和 b 进行位或运算
bitset(a, pos) 将 a 的指定位置 pos 的比特位设置为 1
bitshift(a, k) 将 a 向左移动 k 位,等同于将 a 乘以 2 k 。当 k 为负数时,将 a 向右移动或者除以 2 |k| 并向负无穷方向取整。溢出的比特位将被舍弃。
bitxor(a, b) 对整数 a 和 b 进行位异或运算
swapbytes 交换字节顺序

集合运算

MATLAB提供了各种集合运算的函数,如并集、交集和判断是否属于集合等。

下表显示了一些常用的集合运算:

显示例子

Sr.No. 功能和描述
1 intersect(A,B) 两个数组的交集;返回A和B中共有的值。返回的值按照排序顺序排列。
2 intersect(A,B,’rows’) 将A和B的每一行作为一个实体,并返回A和B共有的行。返回的矩阵的行按照排序顺序排列。
3 ismember(A,B) 返回与A的大小相同的数组,其中包含A中的元素在B中找到的位置为1(真),其他位置为0(假)。
4 ismember(A,B,’rows’) 将A和B的每一行作为一个实体,并返回一个向量,其中包含A的矩阵的行也是B的行的位置为1(真),其他位置为0(假)。
5 issorted(A) 如果A的元素按照排序顺序排列,则返回逻辑值1(真),否则返回逻辑值0(假)。输入A可以是向量或者N行1列或者1行N列的字符串的单元数组。 A被认为是排序的条件是A 与sort(A)的输出相等。
6 issorted(A, ‘rows’) 如果二维矩阵A的行按照排序顺序排列,则返回逻辑值1(真),否则返回逻辑值0(假)。 矩阵A被认为是排好序的条件是A 与sortrows(A)的输出相等。
7 setdiff(A,B) 两个数组的差集;返回在A中而不在B中的值。返回的值按照排序顺序排列。
8 setdiff(A,B,’rows’) 将A和B的每一行作为一个实体,并返回从A中不属于B的行。返回的矩阵的行按照排序顺序排列。 ‘rows’选项不支持单元格数组。
9 setxor 两个数组的异或集
10 union 两个数组的并集
11 unique 数组中的唯一值

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程