扫码一下
查看教程更方便
运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作。 MATLAB 主要设计用于对整个矩阵和数组进行操作。 因此,MATLAB 中的运算符既适用于标量数据,也适用于非标量数据。 MATLAB 允许以下类型的基本运算
MATLAB 允许两种不同类型的算术运算 -
矩阵算术运算与线性代数中的定义相同。 数组操作是逐个元素执行的,包括一维和多维数组。
矩阵运算符和数组运算符通过句点 .
符号区分。 但是,由于矩阵和数组的加法和减法运算相同,因此两种情况的运算符相同。 下表给出了运算符的简要说明
序号 | 运算符 | 描述 |
---|---|---|
1 | + | 加法或一元加法。 A+B 将存储在变量 A 和 B 中的值相加。A 和 B 必须具有相同的大小,除非其中一个是标量。 标量可以添加到任意大小的矩阵中。 |
2 | - | 减法或一元减法。 A-B 从 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 是 X 的 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 的数组转置。对于复数矩阵,这不涉及共轭。 |
以下示例显示了算术运算符对标量数据的使用。 使用以下代码创建脚本文件 -
a = 10;
b = 20;
c = a + b
d = a - b
e = a * b
f = a / b
g = a \ b
x = 7;
y = 3;
当我们运行该文件时,它会产生以下结果
c = 30
d = -10
e = 200
f = 0.50000
g = 2
z = 343
除了上述算术运算符外,MATLAB 还提供以下用于类似目的的命令/函数
序号 | 函数 | 描述 |
---|---|---|
1 | uplus(a) | 一元加号; 增加量a |
2 | plus (a,b) | 加; 返回 a + b |
3 | uminus(a) | 一元减号; 减少量a |
4 | minus(a, b) | 减; 返回 a - b |
5 | times(a, b) | 数组相乘; 返回 a.*b |
6 | mtimes(a, b) | 矩阵乘法; 返回 a* b |
7 | rdivide(a, b) | 右数组划分; 返回 a ./ b |
8 | ldivide(a, b) | 左数组划分; 返回 a.\b |
9 | mrdivide(A, B) | 求解线性方程组 xA = B for x |
10 | mldivide(A, B) | 求解 x 的线性方程组 Ax = B |
11 | power(a, b) | 数组求幂; 返回 a.^b |
12 | mpower(a, b) | 矩阵求幂; 返回 a ^ b |
13 | cumprod(A) | 累计积; 返回与包含累积乘积的数组 A 大小相同的数组。
|
14 | cumprod(A, dim) | 返回沿维度 dim 的累积乘积。 |
15 | cumsum(A) | 累计总和; 返回包含累积和的数组 A。
|
16 | cumsum(A, dim) | 返回沿维度 dim 的元素的累积和。 |
17 | diff(X) | 差分和近似导数; 计算 X 的相邻元素之间的差异。
|
18 | diff(X,n) | 递归应用 diff n 次,得到第 n 个差异。 |
19 | diff(X,n,dim) | 它是沿标量暗淡指定的维度计算的第 n 个差分函数。 如果 n 阶等于或超过维度 dim 的长度,则 diff 返回一个空数组。 |
20 | prod(A) | 数组元素的乘积; 返回 A 的数组元素的乘积。
|
21 | prod(A,dim) | 沿维度 dim 返回产品。 例如,如果 A 是矩阵,则 prod(A,2) 是包含每行乘积的列向量。 |
22 | prod(___,datatype) | 相乘并返回由数据类型指定的类中的数组。 |
23 | sum(A) | 数组元素的总和; 返回数组不同维度的总和。 如果A是浮点数,即double或single,则B是本机累加的,即与A在同一类中,B与A具有相同的类。如果A不是浮点数,则B在double中累加,B具有 类双。
|
24 | sum(A,dim) | 沿标量暗淡指定的 A 的维度求和。 |
25 | sum(..., 'double') sum(..., dim,'double') |
以双精度执行加法并返回双精度类型的答案,即使 A 的数据类型为单精度或整数数据类型。 这是整数数据类型的默认值。 |
26 | sum(..., 'native') sum(..., dim,'native') |
在 A 的本机数据类型中执行加法并返回相同数据类型的答案。 这是单人和双人的默认设置。 |
27 | ceil(A) | 向正无穷大舍入; 将 A 的元素四舍五入为大于或等于 A 的最接近的整数。 |
28 | fix(A) | 向零舍入 |
29 | floor(A) | 向负无穷大舍入; 将 A 的元素四舍五入为小于或等于 A 的最接近的整数。 |
30 | idivide(a, b) idivide(a, b,'fix') |
带舍入选项的整数除法; 与 a./b 相同,只是小数商向零四舍五入到最接近的整数。 |
31 | idivide(a, b, 'round') | 分数商四舍五入到最接近的整数。 |
32 | idivide(A, B, 'floor') | 分数商向负无穷大四舍五入到最接近的整数。 |
33 | idivide(A, B, 'ceil') | 小数商向无穷大四舍五入到最接近的整数。 |
34 | mod (X,Y) | 除法后的模数; 返回 X - n.\*Y ,其中 n = floor(X./Y) 。 如果 Y 不是整数并且商 X./Y 在整数的舍入误差范围内,则 n 是该整数。 输入 X 和 Y 必须是相同大小的实数数组,或实数标量(假设 Y ~=0 )。 请注意
|
35 | rem (X,Y) | 除法后的余数; 返回 X - n.*Y,其中 n = fix(X./Y)。 如果 Y 不是整数并且商 X./Y 在整数的舍入误差范围内,则 n 是该整数。 输入 X 和 Y 必须是相同大小的实数数组,或实数标量(假设 Y ~=0 )。请注意
|
36 | round(X) | 四舍五入到最接近的整数; 将 X 的元素四舍五入为最接近的整数。 小数部分为 0.5 的正元素向上舍入到最接近的正整数。 小数部分为 -0.5 的负元素向下舍入为最接近的负整数。 |