gpt4 book ai didi

arrays - 在 MATLAB 中使用转置与 ctranspose

转载 作者:太空宇宙 更新时间:2023-11-03 19:06:34 26 4
gpt4 key购买 nike

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

例如:

>> v = [ 1 2 3 ]'

v =

1
2
3

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

这似乎只在涉及复数时才重要,如果您想转置矩阵而不求共轭,则需要使用 .' 运算符。

对实数矩阵和向量也使用 .' 是好的做法吗?我们应该教 MATLAB 初学者什么?

最佳答案

有趣的问题!

我肯定会说,当您只想转置时,使用 .' 是一种很好的做法,即使数字是真实的,因此 ' 会产生相同的效果。主要原因是:

  1. 概念清晰:需要转置就转置。不要加入不必要的结合。这是不好的做法。您将习惯于编写 ' 进行转置,而不会注意到其中的差异。有一天,当应该使用 .' 时,您将编写 '。作为可能的说明,请参见 this questionthis one .

  2. 面向 future 。如果将来有一天你将你的函数应用于复杂的输入,行为会突然改变,你将很难找到原因。相信我,我知道我在说什么1

当然,如果您使用的是真实输入,但结合对复杂输入有意义,请务必使用 '。例如,如果您正在为实数向量定义点积,则使用 ' 可能是合适的,因为如果您将来要使用复数输入,共轭转置 would make more sense .

1 在我早期的 Matlab 时代,我花了相当长的时间来追溯我代码中的某个问题,结果证明是由于使用 ' 当我应该使用 .' 时。真正让我生气的是,实际上是我的教授说 ' 意味着转置!他忘了提到共轭,因此我的错误。我学到的教训:' 不是 .';教授可以告诉你一些明显错误的事情:-)

关于arrays - 在 MATLAB 中使用转置与 ctranspose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25150027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com