MATLAB - 相容陣列



在 MATLAB 中,當陣列共享相同的資料型別和大小,或者其中一個為標量時,這些陣列被認為是相容的。在 MATLAB 中執行逐元素運算或函式時,大小相容的陣列會自動擴充套件以與彼此的維度對齊。

MATLAB 相容陣列可以儲存各種型別的資料,包括數字、字串、邏輯值等。它們特別適合處理數值資料,這使得 MATLAB 成為科學和工程應用的強大工具。

以下是一些具有相容大小的標量、向量和矩陣的示例。

行向量和列向量相容性

行向量和列向量始終具有相容的大小,即使它們的大小和長度不同。對這些向量進行算術運算會導致建立矩陣。

示例 1

假設您有一個 2x2 矩陣。此外,輸出也是一個 2x2 矩陣。

matrix1 = [1, 2; 3, 4]
matrix2 = [5, 6; 7, 8]

在此示例中,matrix1 和 matrix2 是兩個 2x2 矩陣。當您在 MATLAB 命令視窗中檢視輸出時,matrix1 和 matrix2 將如下所示顯示。

>> matrix1 = [1, 2; 3, 4]
matrix2 = [5, 6; 7, 8]

matrix1 =

   1     2
   3     4

matrix2 =

   5     6
   7     8

>>

現在讓我們對其執行加法,如下所示:

result = matrix1 + matrix2

現在,當您在 MATLAB 命令視窗中執行上述程式碼行時,輸出如下:

>> result = matrix1 + matrix2

result =

   6     8
   10    12

>>

您可以看到,逐元素相加兩個 2x2 矩陣的結果也是一個 2x2 矩陣,其中相應的元素相加。

示例 2

將標量新增到 2x2 矩陣。

matrix = [1, 2; 3, 4]
scalar = 5

在此示例中,matrix 是一個 2x2 矩陣,scalar 是一個標量值。當您在 MATLAB 命令視窗中檢查它時,您將得到:

>> matrix = [1, 2; 3, 4]
scalar = 5

matrix =

   1     2
   3     4

scalar = 5

現在讓我們將標量與矩陣相加,如下所示:

result = matrix + scalar

現在讓我們在 MATLAB 的命令視窗中檢查上述內容:

>> result = matrix + scalar

result =

   6     7
   8     9

>> 

您可以看到,原始矩陣的每個元素都增加了標量值,最終得到一個新的 2x2 矩陣。

示例 3

這裡我們將使用 4x2 矩陣並將其新增到一個 4x1 列向量中。

matrix = [1, 2; 3, 4; 5, 6; 7, 8]
column_vector = [10; 20; 30; 40]

當您在 MATLAB 命令視窗中檢查上述內容時,我們得到:

>> matrix = [1, 2; 3, 4; 5, 6; 7, 8]
column_vector = [10; 20; 30; 40]

matrix =

   1     2
   3     4
   5     6
   7     8

column_vector =

   10
   20
   30
   40

>>

這裡矩陣是 4x2 矩陣,即它有 4 行 2 列。我們有列向量 4x1,即 4 行 1 列。

讓我們將兩者相加,我們將看到行保持不變,即輸出將具有 4x2 的大小。

result = matrix + column_vector

現在,當您在 MATLAB 命令視窗中檢查輸出時,結果為:

>> result = matrix + column_vector

result =

   11    12
   23    24
   35    36
   47    48

>>

列向量中的每個元素都已新增到原始矩陣的相應列中,最終得到一個新的 4x2 矩陣。

示例 4

這裡我們將看到將列向量與行向量相加的結果。

column_vector = [1; 2; 3; 4]
row_vector = [5, 6, 7, 8]

讓我們在 MATLAB 命令視窗中檢查輸出:

>> column_vector = [1; 2; 3; 4]
row_vector = [5, 6, 7, 8]

column_vector =

   1
   2
   3
   4

row_vector =

   5     6     7     8

>>

列向量的大小為 4x1,行向量的大小為 1x4。

現在讓我們看看將兩者相加的結果。

result = column_vector + row_vector

MATLAB 命令視窗中的輸出為:

>> result = column_vector + row_vector

result =

   6     7     8     9
   7     8     9    10
   8     9    10    11
   9    10    11    12

>>

結果矩陣的大小為 4x4。列向量中的每個元素都新增到行向量中相應的元素中,從而得到一個矩陣,其中每個元素都是輸入向量中相應元素的總和。

示例 5

讓我們也對行向量和列向量執行一個乘法和減法運算。

column_vector = [1; 2; 3; 4]
row_vector = [5, 6, 7, 8]
result = column_vector *  row_vector

當您在 MATLAB 命令視窗中執行相同操作時,輸出為:

>> column_vector = [1; 2; 3; 4]
row_vector = [5, 6, 7, 8]
result = column_vector *  row_vector

column_vector =

   1
   2
   3
   4

row_vector =

   5     6     7     8

result =

   5     6     7     8
   10    12    14    16
   15    18    21    24
   20    24    28    32

>> 

現在讓我們執行減法運算。

column_vector = [1; 2; 3; 4]
row_vector = [5, 6, 7, 8]
result = column_vector -  row_vector

當您在 MATLAB 命令視窗中執行相同操作時,輸出為:

>> column_vector = [1; 2; 3; 4]
row_vector = [5, 6, 7, 8]
result = column_vector -  row_vector

column_vector =

   1
   2
   3
   4

row_vector =

   5     6     7     8

result =

   -4    -5    -6    -7
   -3    -4    -5    -6
   -2    -3    -4    -5
   -1    -2    -3    -4

>>
廣告