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的线性代数积。更准确地说,

Matrix Multiplication

对于非标量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的幂。如果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),关系为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的指定位置获取位

bitor(a, b)

整数a和b的位或

bitset(a, pos)

将bit设置为a的特定位置pos

bitshift(a, k) 返回一个由向左移动ķ比特,相当于乘以2 ķ。k的负值对应于右移位或除以2 | k | 并朝负无穷大四舍五入到最接近的整数。任何溢出位都将被截断。

bitxor(a, b)

整数 a 和 b 的位异或

swapbytes

整数 a 和 b 的位异或

集合运算符

MATLAB提供了用于集合操作的各种功能,例如联合,交集和集合成员资格的测试等。

下表显示了一些常用的设置操作-

集合运算示例

序号 功能说明

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)

如果元素按排序顺序排列,则返回逻辑1(true),否则返回逻辑0(false)。输入A可以是向量,也可以是N×1或1×N的字符串单元格数组。如果A和sort(A)的输出相等,则认为A被排序。

6

issorted(A, 'rows')

如果二维矩阵A的行按排序顺序排列,则返回逻辑1(true),否则返回逻辑0(false)。如果A和sortrows(A)的输出相等,则认为矩阵A是排序的。

7

setdiff(A,B)

设置两个数组的差值;返回A中不在B中的值。返回数组中的值按排序顺序排列。

8

setdiff(A,B,'rows')

将A的每一行和B的每一行视为单个实体,并返回A中不在B中的行。返回矩阵的行按排序顺序排列。

"rows"选项不支持单元格数组。

9

setxor

两个数组的异或

10

union

两个数组的并集

11

unique

数组中的唯一值

相关推荐
玩电脑的辣条哥2 小时前
Python如何播放本地音乐并在web页面播放
开发语言·前端·python
ll7788115 小时前
LeetCode每日精进:20.有效的括号
c语言·开发语言·算法·leetcode·职场和发展
Jackson@ML6 小时前
Python数据可视化简介
开发语言·python·数据可视化
赵琳琅6 小时前
Java语言的云计算
开发语言·后端·golang
lly2024066 小时前
jQuery 杂项方法
开发语言
赵琳琅7 小时前
MDX语言的安全开发
开发语言·后端·golang
开开又心心的学嵌入式7 小时前
C语言——指针进阶应用
c语言·开发语言
开开又心心的学嵌入式7 小时前
C语言——指针基础知识
c语言·开发语言
lonelyhiker7 小时前
javascript的原型链
开发语言·javascript·原型模式
夏梓蕙8 小时前
Elixir语言的软件开发工具
开发语言·后端·golang