运算符
运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。 MATLAB主要用于整个矩阵和数组。 因此,MATLAB中的运算符同时处理标量和非标量数据。 MATLAB允许以下类型的基本操作 -
- 算术运算符
- 关系运算符
- 逻辑运算符
- 按位操作
- 设置操作
算术运算符 (Arithmetic Operators)
MATLAB允许两种不同类型的算术运算 -
- 矩阵算术运算
- 数组算术运算
矩阵算术运算与线性代数中定义的相同。 数组操作在一维和多维数组上逐个元素地执行。
矩阵运算符和数组运算符由句点(。)符号区分。 但是,由于矩阵和数组的加法和减法操作相同,因此两种情况下的运算符相同。 下表给出了运算符的简要说明 -
Sr.No. | 操作符和说明 |
---|---|
1 | + 加或一元加。 A + B添加存储在变量A和B中的值.A和B必须具有相同的大小,除非一个是标量。 标量可以添加到任何大小的矩阵中。 |
2 | - 减法或一元减号。 AB从A中减去B的值.A和B必须具有相同的大小,除非一个是标量。 可以从任何大小的矩阵中减去标量。 |
3 | * 矩阵乘法。 C = A * B是矩阵A和B的线性代数乘积。更准确地说, 对于非标量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 | ^ 矩阵功率。 如果p是标量,则X ^ p是幂p的X. 如果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的数组转置。对于复数矩阵,这不涉及共轭。 |
关系运算符 (Relational Operators)
关系运算符也可以处理标量和非标量数据。 数组的关系运算符执行两个数组之间的逐个元素比较,并返回相同大小的逻辑数组,其中元素设置为逻辑1(true),其中关系为true,元素设置为逻辑0(false),其中不。
下表显示了MATLAB中可用的关系运算符 -
Sr.No. | 操作符和说明 |
---|---|
1 | < Less than |
2 | 《= 小于或等于 |
3 | > Greater than |
4 | 》= 大于或等于 |
5 | == 等于 |
6 | ~= 不等于 |
逻辑运算符 (Logical Operators)
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位OR |
bitset(a, pos) | 在a的特定位置pos处设置位 |
bitshift(a, k) | 返回向左移位k位,相当于乘以2 k 。 k的负值对应于向右移位或除以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大小相同的数组,包含1(true),其中A的元素在B中找到。在其他地方,它返回0(false)。 |
4 | ismember(A,B,'rows') 将A的每一行和B的每一行视为单个实体,并返回包含1(true)的向量,其中矩阵A的行也是B的行。否则,它返回0(false)。 |
5 | issorted(A) 如果A的元素按排序顺序返回逻辑1(true),否则返回逻辑0(false)。 输入A可以是矢量或N×1或1×N的字符串数组。 A is considered to be sorted if A和sort(A)的输出相等, A is considered to be sorted if A 。 |
6 | issorted(A, 'rows') 如果二维矩阵A的行按排序顺序返回逻辑1(真),否则返回逻辑0(假)。 Matrix A is considered to be sorted if A和sortrows(A)的输出相等, Matrix A is considered to be sorted if A 。 |
7 | setdiff(A,B) 设置两个数组的差异; 返回A中不在B中的值。返回数组中的值按排序顺序排列。 |
8 | setdiff(A,B,'rows') 将A的每一行和B的每一行视为单个实体,并返回A中不在B中的行。返回矩阵的行按排序顺序排列。 'rows'选项不支持单元格数组。 |
9 | setxor 设置两个数组的异或 |
10 | union 设置两个数组的并集 |
11 | unique 数组中的唯一值 |