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 ^ 矩阵的幂。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的数组转置。对于复数矩阵,这不涉及共轭。

示例

以下示例展示了对标量数据使用算术运算符的用法。创建一个包含以下代码的脚本文件 –

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还提供了以下命令/函数用于类似的目的-

Sr.No. 功能与描述
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,得到 x
10 mldivide(A, B) 解线性方程组 Ax = B,得到 x
11 power(a, b) 数组的次方操作; 返回 a.^b
12 mpower(a, b) 矩阵的次方操作; 返回 a ^ b
13 cumprod(A) 累积乘法; 返回与数组 A 相同大小的数组,其中包含累积乘积。
如果 A 是一个向量,则 cumprod(A) 返回一个向量,其中包含 A 的元素的累积乘积。
如果 A 是一个矩阵, 那么 cumprod(A) 返回一个包含 A 的每一列的累积乘积的矩阵。
如果 A 是一个多维数组, 那么 cumprod(A) 在第一个非单例维度上进行操作。
14 cumprod(A, dim) 返回沿着维度 dim 的累积乘积。
15 cumsum(A) 累积和;返回一个包含累积和的数组 A。
如果 A 是一个向量, 那么 cumsum(A) 返回一个包含 A 的元素累积和的向量。
如果 A 是一个矩阵, 那么 cumsum(A) 返回一个包含 A 的每一列的累积和的矩阵。
如果 A 是一个多维数组, 那么 cumsum(A) 在第一个非单例维度上进行操作。
16 cumsum(A, dim) 返回沿着维度 dim 的元素的累积和。
17 diff(X) 计算差异和近似导数;计算X中相邻元素之间的差异。
如果X是向量,则diff(X)返回一个比X短一个元素的向量,其中包含相邻元素之间的差异:[X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)]
如果X是矩阵,则diff(X)返回一个行差分矩阵:[X(2:m,:)-X(1:m-1,:)]
18 diff(X,n) 对diff递归应用n次,得到第n次差分。
19 diff(X,n,dim) 它是沿着由标量dim指定的维度计算的第n个差分函数。如果order n大于或等于维度dim的长度,则diff返回一个空数组。
20 prod(A) 数组元素的乘积;返回A的数组元素的乘积。
如果A是一个向量,则prod(A)返回元素的乘积。
如果A是一个非空矩阵,则prod(A)将A的列视为向量,并返回每列的乘积的行向量。
如果A是一个空的0×0矩阵,则prod(A)返回1。
如果A是一个多维数组,则prod(A)沿着第一个非单例维度操作,并返回一个乘积数组。该维度的大小缩小到1,而所有其他维度的大小保持不变。
如果输入A是单精度数据类型,prod函数计算并返回B作为单精度。对于其他数值和逻辑数据类型,prod函数计算并返回B作为双精度。
21 prod(A,dim) 返回沿着维度dim的乘积。例如,如果A是一个矩阵,prod(A,2)会返回一个包含每行乘积的列向量。
22 prod(___,datatype) 计算并返回一个指定数据类型的数组。
23 sum(A)
数组元素的求和;返回数组不同维度的求和结果。如果A是浮点数,即双精度或者单精度,B以与A相同的数据类型进行累积。如果A不是浮点数,B以双精度进行累积,并且B的数据类型是双精度。
如果A是一个向量,则sum(A)返回元素的和。
如果A是一个矩阵,则sum(A)将A的每列视为向量,返回每列的和构成的行向量。
如果A是多维数组,则sum(A)将沿着第一个非单一维度的值视为向量,返回一个由行向量构成的数组。
24 sum(A,dim) 根据标量dim指定的维度对A进行求和。
25 sum(…, ‘double’) sum(…, dim,’double’) 以双精度进行加法运算,并返回双精度类型的结果,即使A的数据类型为single或整数数据类型也是如此。这是整数数据类型的默认设置。
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)。 请注意−
mod(X,0)是X
mod(X,X)为0
对于X~=Y且Y~=0的mod(X,Y),其符号与Y相同
35 rem(X,Y) 余数除法;返回X – n.*Y,其中n = fix(X./Y)。如果Y不是整数,并且商X./Y接近一个整数的舍入误差,那么n就是该整数。输入X和Y必须是相同尺寸的实数数组,或者是实数标量(假设Y~=0)。 请注意−
rem(X,0)为NaN
对于X~=0的rem(X,X),结果为0
对于X~=Y且Y~=0的rem(X,Y),其符号与X相同
36 round(X) 四舍五入到最近的整数;将X的元素四舍五入到最近的整数。具有小数部分为0.5的正元素向上舍入到最近的正整数。具有小数部分为-0.5的负元素向下舍入到最近的负整数。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程