快速计算矩阵平方的对角线的方法

时间:2015-07-30 07:46:09

标签: performance matlab matrix vectorization

我有nxm矩阵V,其中我计算了平方S=V'*V。对于我的以下计算,我只需要S的对角线,所以我写s=diag(V'*V)。然而,这有点浪费,因为我也在计算所有非对角元素。是否有快速方式仅计算S的对角线元素?当然,我可以使用for循环,但显式循环不是在MATLAB中执行操作的快捷方法。

感谢!!!

1 个答案:

答案 0 :(得分:5)

这很简单:

sum(conj(v).*v,1)

sum(abs(v).^2,1)

如果矩阵是真的,你可以简化为

sum(v.*v,1)

sum(v.^2,1)