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
>>
打印页面
上一页 下一页
广告