在 MATLAB 中使用 ' 对矩阵进行转置操作时,你可能认为这是简单的“行列交换”,但如果矩阵是复数,结果可能会让你意外。因为——
'实际是“共轭转置”(Conjugate Transpose),而不是普通的转置!
本文将带你彻底搞清楚 ' 和 .' 的区别、用法以及在工程实践中的应用建议。
✅ 一、基本概念
| 表达式 | 含义 | 说明 |
|---|---|---|
A' | 共轭转置 | 等价于 transpose(conj(A)),先共轭再转置 |
A.' | 单纯转置 | 不共轭,仅将行列互换 |
✅ 二、示例对比
以一个复数矩阵为例:
A = [1+2j, 3+4j;
5+6j, 7+8j];
A':共轭转置
A' =
1.0000 - 2.0000i 5.0000 - 6.0000i
3.0000 - 4.0000i 7.0000 - 8.0000i
A.':单纯转置
A.' =
1.0000 + 2.0000i 5.0000 + 6.0000i
3.0000 + 4.0000i 7.0000 + 8.0000i
可见,A' 同时执行了复共轭和转置,而 A.' 仅仅是形状变化。
✅ 三、工程应用建议
| 使用场景 | 推荐使用 | 原因说明 |
|---|---|---|
| 处理实数矩阵 | A' 或 A.' | 无差异,结果一致 |
| 控制系统/信号处理(含复数) | A' | Hermitian 运算,自动包含复共轭 |
| 数据整理、数组维度变换 | A.' | 仅需转置时避免无意引入复共轭 |
| 矩阵构造如 xHxx^H xxHx | x' | MATLAB 中 x' 就是复向量的厄米转置(x Hermitian) |
✅ 四、典型错误示例
x = [1+1j; 2+2j];
xTx_wrong = x.' * x; % 错误:未共轭
xTx_right = x' * x; % 正确:使用共轭转置
✅ 五、小结
' 和 .' 的根本区别: |
|---|
' = 共轭 + 转置 |
.' = 仅仅转置 |
使用 ' 时 不仅是形状的变换,还会更改数值的虚部符号(若矩阵含复数),因此请根据实际需求谨慎选择。
✍️ 结语
掌握 ' 和 .' 的区别,是 MATLAB 中处理复数矩阵、信号分析、控制系统等应用的基础。
如果你在编程中遇到维度错乱或复数不对的问题,不妨检查一下:是不是该用 .' 而不是 '?

2万+

被折叠的 条评论
为什么被折叠?



