MATLAB 算术运算

Matlab 运算符

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 = BX

10

mldivide(A, B)

求解线性方程组的系统Ax = b的用于X

11

power(a, b)

数组幂;返回a.^ b

12

mpower(a, b)

矩阵幂;返回a ^ b

13

cumprod(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)

它是沿着标量暗角指定的维度计算出的第n个差分函数。如果阶数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并将其返回为double。

21

prod(A,dim)

返回尺寸为dim的乘积。例如,如果A是矩阵,则prod(A,2)是包含每一行乘积的列向量。

22

prod(___,datatype)

乘以并返回由数据类型指定的类中的数组。

23

sum(A)

  • 数组元素的总和;返回沿数组的不同维度的和。如果A是浮点数(是双精度或单个浮点数),则B是本机累加的,即与A处于同一类,并且B与A具有相同的类。如果A不是浮点,则B累加成两倍,并且B具有全班加倍。

  • 如果A是向量,则sum(A)返回元素的总和。

  • 如果A是矩阵,则将Asum(A)的列视为向量,并返回每列总和的行向量。

  • 如果A是多维数组,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)。

请注意-

  • mod(X,0)是X

  • mod(X,X) 是0

  • mod(X,Y) 对于X〜= Y和Y〜= 0与Y具有相同的符号

35

rem (X,Y)

分割后剩余;返回X-n。* Y,其中n = fix(X./Y)。如果Y不是整数,并且商X./Y在整数的舍入误差内,则n是该整数。输入X和Y必须是相同大小的实数组或实标量(提供Y〜= 0)。

请注意-

  • rem(X,0)是NaN

  • rem(X,X) 对于X〜= 0为0

  • rem(X,Y) 对于X〜= Y和Y〜= 0与X具有相同的符号。

36

round(X)

四舍五入到最接近的整数;将X的元素四舍五入到最接近的整数。小数部分为0.5的正元素四舍五入到最接近的正整数。小数部分为-0.5的负元素会四舍五入为最接近的负整数。

Matlab 运算符