MATLAB - 轉置運算子



矩陣的轉置是矩陣上非常常用的運算。

什麼是矩陣的轉置?

矩陣的轉置是透過將行與列互換,列與行互換得到的。

假設你有一個大小為 3x3(即 3 行 3 列)的矩陣 A。矩陣 A 的轉置用字母 T 作為矩陣 A 的下標表示。

例如,矩陣 A 的轉置將是 AT 或 A'。

讓我們嘗試一個例子

A =  1     2     3
     4     5     6
     7     8     9

矩陣 A 的轉置將是

AT = 
   1     4     7
   2     5     8
   3     6     9

OR

A’ = 
   1     4     7
   2     5     8
   3     6     9

如果你對轉置矩陣再次進行轉置,你將得到原始矩陣。

讓我們從主矩陣 A 開始。

A =
   1     2     3
   4     5     6
   7     8     9

矩陣 A 的轉置將是

AT = 
     1     4     7
     2     5     8
     3     6     9

讓我們再次進行轉置,你應該得到的結果等於我們開始使用的原始矩陣。

(AT)T = 
   1     2     3
   4     5     6
   7     8     9

所以方程 (AT)T = A 或 (A')' = A。

MATLAB 中的轉置方法

在 MATLAB 中,你可以使用運算子 .'(即 A .')或 '(即 A')來查詢矩陣的轉置,或者使用 transpose() 方法。

語法

T  = A .'
T  = A'
T  = transpose(A)

transpose() 方法或使用 .' 或 ' 將返回矩陣的轉置。

示例 1

在這裡,我將使用運算子 .' 來查詢矩陣的轉置。

A = [1 2 3; 4 5 6; 7 8 9]
T = A .'

在 MATLAB 中執行後,你將得到以下輸出

>> A = [1 2 3; 4 5 6; 7 8 9]

>> T = A.'

A =

   1     2     3
   4     5     6
   7     8     9

T =

   1     4     7
   2     5     8
   3     6     9
>> 

示例 2

使用運算子 '

A = [1 2 3; 4 5 6; 7 8 9]
T = A '

在 MATLAB 中執行後,你將得到以下輸出。

>> A = [1 2 3; 4 5 6; 7 8 9]
T = A'

A =
   1     2     3
   4     5     6
   7     8     9
   
T =

   1     4     7
   2     5     8
   3     6     9
>> 

示例 3

現在讓我們使用 transpose() 方法。

A = [1 2 3; 4 5 6; 7 8 9]
T = transpose(A)

執行後的輸出為:

>> A = [1 2 3; 4 5 6; 7 8 9]
T = transpose(A)

A =

   1     2     3
   4     5     6
   7     8     9

T =

   1     4     7
   2     5     8
   3     6     9
>> 

矩陣的轉置的轉置

現在讓我們嘗試對矩陣的轉置進行轉置,以確保我們能得到原始矩陣。

示例 1

使用運算子 (.')

A = [1 2 3; 4 5 6; 7 8 9]
T = (A .').'

當在 MATLAB 中執行上述程式碼時,輸出如下:

>> A = [1 2 3; 4 5 6; 7 8 9]
T = (A .').'

A =
   1     2     3
   4     5     6
   7     8     9

T =
   1     2     3
   4     5     6
   7     8     9
>>

示例 2

使用如下所示的 transpose() 方法。

A = [1 2 3; 4 5 6; 7 8 9]
T = transpose(A)
Y = transpose(T)

在 MATLAB 中執行後的輸出為:

>> A = [1 2 3; 4 5 6; 7 8 9]
T = transpose(A)
Y = transpose(T)
A =
   1     2     3
   4     5     6
   7     8     9

T =
   1     4     7
   2     5     8
   3     6     9

Y =
   1     2     3
   4     5     6
   7     8     9
>> 

對複數矩陣進行轉置

讓我們首先構造一個如下所示的複數矩陣。

A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i]
B = A.'

在 MATLAB 中執行後的輸出為:

>> A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i]
B = A.'

A =

   5 + 0i   3 + 0i   4 - 1i   3 + 2i
   0 + 4i   1 - 2i   5 + 0i   5 - 1i

B =

   5 + 0i   0 + 4i
   3 + 0i   1 - 2i
   4 - 1i   5 + 0i
   3 + 2i   5 - 1i

>> 

再次對矩陣 B 進行轉置將返回原始矩陣,如下所示。

>> B = B.'

B =

   5.0000 + 0.0000i   3.0000 + 0.0000i   4.0000 - 1.0000i   3.0000 + 2.0000i
   0.0000 + 4.0000i   1.0000 - 2.0000i   5.0000 + 0.0000i   5.0000 - 1.0000i

>> 

轉置運算子 (.') 和 (') 之間的區別?

運算子 .' 執行非共軛轉置。

運算子 ' 執行共軛轉置。

上述運算子對複數矩陣的影響更大。由於運算子 .' 用於非共軛轉置;它將確保它不會影響複數虛部的符號。而當使用運算子 (') 時,複數虛部的符號將受到影響。

讓我們檢查一下包含複數的矩陣以及使用 (.') 和 (') 進行轉置的輸出。

讓我們考慮以下矩陣來測試這兩個運算子。

A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i]

共軛轉置 (')

矩陣的共軛轉置,也稱為厄米特轉置或伴隨矩陣,是一種數學運算,它包括對矩陣進行轉置,然後將每個元素替換為其複共軛。

複數 a + bi 的複共軛是透過改變虛部的符號形成的,結果為 a - bi。但是,對於實數,複共軛保持不變。

>> A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i]
B = A'

A =

   5.0000 + 0.0000i   3.0000 + 0.0000i   4.0000 - 1.0000i   3.0000 + 2.0000i
   0.0000 + 4.0000i   1.0000 - 2.0000i   5.0000 + 0.0000i   5.0000 - 1.0000i

B =

   5.0000 + 0.0000i   0.0000 - 4.0000i
   3.0000 + 0.0000i   1.0000 + 2.0000i
   4.0000 + 1.0000i   5.0000 + 0.0000i
   3.0000 - 2.0000i   5.0000 + 1.0000i

>> 

非共軛轉置 (.')

你很少會遇到“非共軛轉置”這個術語,它指的是不考慮矩陣元素的複共軛的轉置運算。

>> A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i]
B = A.'

A =

   5.0000 + 0.0000i   3.0000 + 0.0000i   4.0000 - 1.0000i   3.0000 + 2.0000i
   0.0000 + 4.0000i   1.0000 - 2.0000i   5.0000 + 0.0000i   5.0000 - 1.0000i


B =

   5.0000 + 0.0000i   0.0000 + 4.0000i
   3.0000 + 0.0000i   1.0000 - 2.0000i
   4.0000 - 1.0000i   5.0000 + 0.0000i
   3.0000 + 2.0000i   5.0000 - 1.0000i

>>

另一個可用於處理複共軛轉置的方法是 ctranspose()。

語法

B = A'
B = ctranspose(A)

此方法很少使用,因為你可以直接使用 A'。ctranspose() 是另一種提供矩陣轉置的替代方法。

讓我們看看一些使用 ctranspose() 的示例。

示例 1

考慮以下矩陣。

A = [1 2 3; 4 5 6; 7 8 9]
B = ctranspose(A)

執行後的輸出為:

>> A = [1 2 3; 4 5 6; 7 8 9]
B = ctranspose(A)

A =

   1     2     3
   4     5     6
   7     8     9

B =

   1     4     7
   2     5     8
   3     6     9

>> 

示例 2

在這個例子中,我們將使用如下所示的複數矩陣。

A = [0-2i 4+1i;4+3i 0-2i]
B = ctranspose(A)

在 MATLAB 中執行後的輸出為:

>> A = [0-2i 4+1i;4+3i 0-2i]
B = ctranspose(A)

A =

   0 - 2i   4 + 1i
   4 + 3i   0 - 2i

B =

   0 + 2i   4 - 3i
   4 - 1i   0 + 2i

>>
廣告