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

>>
广告