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
廣告