在MATLAB中使用转置与ctranspose

在MATLAB中使用转置与ctranspose

在MATLAB中转置向量/矩阵时,我已经看到并使用了'(撇号)运算符很长一段时间。

例如:

>> v = [ 1 2 3 ]'v = 

    1
    2
    3

然而,这是我最近发现的共轭转置,或者ctranspose

这似乎只涉及涉及复杂数字的情况,如果您想要转换矩阵而不获取共轭,则需要使用.'opertator。

那么使用.'真实矩阵和向量是否是好习惯?我们应该怎样教MATLAB初学者


慕容森
浏览 1481回答 3
3回答

婷婷同学_

我非常偏见:我使用的大多数情况'都是纯粹的“正式”,也与数学计算无关。我很可能想要将索引序列的矢量旋转1:1090度。我罕使用'到矩阵,因为它是不明确的,为什么要进行转置你已经回答了第一个问题是- ?如果矩阵最初是在错误的方向上定义的,我宁愿将矩阵定义为正确的矩阵,但之后不要将其转动。为了转置矩阵进行数学计算,我明确地使用transpose和ctranspose。因为通过这样做,代码更容易阅读(不必专注于那些小点)和调试(不必关心丢失的点)。像往常一样执行以下作业,例如点积。

万千封印

这实际上是许多MATLAB程序员争论的主题。有人说,如果你知道自己在做什么,那么你可以继续使用,'如果你知道你的数据是纯粹的,并且.'如果你的数据很复杂就可以使用。然而,有些人(比如Luis Mendo)主张你应该一直使用这一事实,.'这样你就不会感到困惑。这样就可以正确处理函数输入,以防输入这些函数所需的数据变得复杂。有一段时间需要复杂的换位,例如计算复矢量的幅度平方。事实上,Loren Shure在她的一个MATLAB摘要中(我记不清哪一个......)说这是引入复杂转置的原因之一。我的建议是,.'如果您的目标是转置数据,则应始终使用。如果你想要做一些复杂的运算,然后使用'和.'依赖于何种操作/计算你在干什么。显然,Luis Mendo的良好做法已经让我感到震惊。
打开App,查看更多内容
随时随地看视频慕课网APP