这里有一些简单的代码,展示了我所看到的内容:
现在,底部显示的三种方法应该都是做同样的事情,所以答案应该是零,对吗?不对!差异很小,但不足以被认为是可以忽略的。此外,随着A和B的长度增加,误差也会增加。
有人知道这些方法之间的实际区别吗?我知道代码中可能有一些捷径,但如果可能的话,我想量化它们。 Matlab是否在任何地方发布了这些差异?我四处寻找,但没有找到任何信息。
A = randn(1,5e6)+1i*randn(1,5e6);
B = randn(1,5e6)+1i*randn(1,5e6);
sum(A.*conj(B)) - A*B'
sum(A.*conj(B)) - mtimes(A,B')
A*B' - mtimes(A,B')
现在,底部显示的三种方法应该都是做同样的事情,所以答案应该是零,对吗?不对!差异很小,但不足以被认为是可以忽略的。此外,随着A和B的长度增加,误差也会增加。
有人知道这些方法之间的实际区别吗?我知道代码中可能有一些捷径,但如果可能的话,我想量化它们。 Matlab是否在任何地方发布了这些差异?我四处寻找,但没有找到任何信息。
A*B' - fliplr(A)*fliplr(B)'
吗? - Luis Mendo