MATLAB允许两种不同类型的算术运算-
矩阵算术运算
数组算术运算
矩阵算术运算与线性代数中定义的相同。数组操作是在一维和多维数组上逐个元素执行的。
矩阵运算符和数组运算符之间用句点(。)符号进行区分。但是,由于矩阵和数组的加法和减法运算相同,因此两种情况下的运算符均相同。
下表简要介绍了运算符-
序号 | 运算符和说明 |
---|---|
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的数组转置。对于复杂矩阵,这不涉及共轭。 |
以下示例显示了对标量数据使用算术运算符。使用以下代码创建脚本文件-
a = 10; b = 20; c = a + b d = a - b e = a * b f = a / b g = a \ b x = 7; y = 3; z = x ^ y运行文件时,它将产生以下结果-
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) 右数组除法;返回一个./ b |
8 | ldivide(a, b) 左数组除法;返回a。\ b |
9 | mrdivide(A, B) 求解线性方程组的系统XA = B为X |
10 | mldivide(A, B) 求解线性方程组的系统Ax = b的用于X |
11 | power(a, b) 数组幂;返回a.^ b |
12 | mpower(a, b) 矩阵幂;返回a ^ b |
13 | cumprod(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的数组元素的乘积。
如果输入A为单数,则prod函数计算并返回B为单数。对于所有其他数字和逻辑数据类型,prod计算B并将其返回为double。 |
21 | prod(A,dim) 返回尺寸为dim的乘积。例如,如果A是矩阵,则prod(A,2)是包含每一行乘积的列向量。 |
22 | prod(___,datatype) 乘以并返回由数据类型指定的类中的数组。 |
23 | sum(A)
|
24 | sum(A,dim) 沿标量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的负元素会四舍五入为最接近的负整数。 |