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 是 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;
z = x ^ y

当您运行该文件时,它会产生以下结果 -

c =  30
d = -10
e =  200
f =  0.50000
g =  2
z =  343

算术运算函数

除了上述算术运算符之外,MATLAB 还提供以下用于类似目的的命令/函数 -

先生。 功能说明
1

加号(一)

一元加;增加量 a

2

加(a,b)

加; 返回 a + b

3

乌米努斯(a)

一元减;减少量 a

4

减(a,b)

减; 返回 a - b

5

次(a,b)

数组乘法;返回 a.*b

6

多次(a, b)

矩阵乘法;返回 a* b

7

除(a, b)

数组右除;返回 a ./ b

8

除(a, b)

左数组除法;返回 a.\b

9

MR除法(A,B)

求解线性方程组xA = B for x

10

毫升除法(A,B)

求解线性方程组Ax = B for x

11

功率(a,b)

阵列功率;返回 a.^b

12

功率(a,b)

矩阵功率;返回a^b

13

凸轮产品(A)

累计产品;返回一个与包含累积乘积的数组 A 大小相同的数组。

  • 如果 A 是向量,则 cumprod(A) 返回包含 A 元素的累积乘积的向量。

  • 如果 A 是矩阵,则 cumprod(A) 返回一个包含 A 每一列的累积乘积的矩阵。

  • 如果 A 是多维数组,则 cumprod(A) 沿第一个非单一维度起作用。

14

cumprod(A,暗淡)

返回沿维度dim 的累积乘积。

15

总和(A)

累计金额;返回包含累积和的数组 A。

  • 如果 A 是向量,则 cumsum(A) 返回包含 A 元素的累积和的向量。

  • 如果 A 是矩阵,则 cumsum(A) 返回一个包含 A 每一列的累积和的矩阵。

  • 如果 A 是多维数组,则 cumsum(A) 沿第一个非单一维度起作用。

16

cumsum(A,暗淡)

返回沿维度dim的元素的累积和。

17 号

差异(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

差异(X,n)

递归应用diff n 次,产生第 n 个差异。

19

差异(X,n,暗淡)

它是沿标量 dim 指定的维度计算的第 n 个差分函数。如果阶数 n 等于或超过维度 dim 的长度,则 diff 返回一个空数组。

20

产品(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

产品(A,暗淡)

返回沿维度 dim 的乘积。例如,如果 A 是矩阵,则 prod(A,2) 是包含每行乘积的列向量。

22

产品(___,数据类型)

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

23

总和(A)

  • 数组元素之和;返回数组不同维度的总和。如果A是浮点数,即double或single,则B是本地累加的,即与A属于同一类,并且B与A具有相同的类。如果A不是浮点数,则B以double累加,并且B具有班级双.

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

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

  • 如果 A 是多维数组,则 sum(A) 将第一个非单一维度上的值视为向量,返回行向量数组。

24

总和(A,暗淡)

沿标量dim指定的A维度求和。

25

总和(...,'双')

总和(...,暗淡,'双')

以双精度执行加法并返回 double 类型的结果,即使 A 的数据类型为 single 或整数数据类型。这是整数数据类型的默认值。

26

总和(...,'本地')

总和(...,暗淡,'本地')

以 A 的本机数据类型执行加法并返回相同数据类型的答案。这是单和双的默认值。

27

天花板(A)

向正无穷大舍入;将 A 的元素四舍五入为大于或等于 A 的最接近的整数。

28

修复(A)

向零舍入

29

楼层(A)

朝负无穷方向舍入;将 A 的元素四舍五入为小于或等于 A 的最接近的整数。

30

除以(a, b)

idivide(a, b,'修复')

带舍入选项的整数除法;与 a./b 相同,只是小数商向零舍入到最接近的整数。

31

idivide(a, b, '圆形')

小数商四舍五入到最接近的整数。

32

idivide(A, B, '地板')

小数商向负无穷大舍入到最接近的整数。

33

idivide(A, B, 'ceil')

小数商向无穷大舍入到最接近的整数。

34

模(X,Y)

除法后的模;返回 X - n.*Y,其中 n = 下限 (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

雷姆 (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

圆形(X)

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

matlab_operators.htm