MATLAB - 数组乘法



MATLAB中的数组乘法涉及对数字数组执行运算。

当您希望将两个数组的对应元素相乘时,使用逐元素乘法。此类乘法使用 `.*` 运算符表示。

被乘的数组必须具有相同的维度。结果数组中的每个元素都是通过将原始数组中的对应元素相乘获得的。

语法

X = A.*B
X = times(A,B)

X = A.*B 执行 A 和 B 之间的数组乘法,方法是计算其对应元素的乘积。务必确保 A 和 B 具有相同的大小或适合此运算的大小。

存在使用 C = times(A,B) 作为计算 A.*B 的替代方法,尽管很少使用。这种方法允许在类中进行运算符重载。

示例 1

将两个向量 A 和 B 相乘。

A = [1 2 3]
B = [4 5 6]
X = A.*B

在 MATLAB 命令窗口中执行相同的操作 -

A =

     1     2     3

B =

     4     5     6

X =

     4    10    18

示例 2

让我们尝试另一个示例,使用如下所示的 2x3 矩阵 -

A = [1, 2, 3; 4, 5, 6]
B = [2, 2, 2; 3, 3, 3]
C = A .* B

在 MATLAB 命令窗口中执行相同的操作,输出为 -

A =

     1     2     3
     4     5     6

B =

     2     2     2
     3     3     3

C =

     2     4     6
    12    15    18

矩阵 C 的大小也与 A 和 B 相同。

现在让我们尝试对我们之前使用 `.*`尝试过的示例使用 `times()` 方法。

示例 3

使用 `times()` 方法将两个向量 A 和 B 相乘。

A = [1 2 3]
B = [4 5 6]
X = times(A,B)

在 MATLAB 命令窗口中执行相同的操作 -

A =

     1     2     3

B =

     4     5     6

X =

     4    10    18

示例 4

让我们尝试另一个示例,使用 2x3 矩阵,但将使用 `times()` 方法将它们相乘。

A = [1, 2, 3; 4, 5, 6]
B = [2, 2, 2; 3, 3, 3]
C = times(A,B)

在 MATLAB 命令窗口中执行相同的操作 -

A =

     1     2     3
     4     5     6

B =

     2     2     2
     3     3     3

C =

     2     4     6
    12    15    18

乘以行向量和列向量

在下面的示例中,维度为 1-by-3 的行向量和维度为 4-by-1 的列向量相乘,从而创建一个 4-by-3 矩阵。

a = 1:3
b = (1:4)'
result_matrix = a .* b

在这个例子中,'a' 是行向量 [1, 2, 3],'b' 是列向量。 `'` 运算符是转置运算符。当应用于矩阵或数组时,它会翻转行和列,有效地将行转换为列,将列转换为行。

表达式 `(1:4)` 生成行向量 [1, 2, 3, 4]。将转置运算符 `'` 应用于行向量会将其转换为列向量 -

b =

     1
     2
     3
     4

当这些向量逐元素相乘时,生成的矩阵 'result_matrix' 将为 -

a =

   1     2     3

b =

   1
   2
   3
   4

result_matrix =

   1     2     3
   2     4     6
   3     6     9
   4     8    12
广告