计算方阵非对角线项的方法

The way to compute off-diagonal terms of a square matrix

我有一个矩阵 X 并用它来计算 MATLAB 中的方阵:S=X*X'。我只需要找到 S.

的非对角线元素

我了解如何对角线执行此操作:sum(X.*X,1)。有没有类似的方法通过矢量化找到非对角线元素?

要获取第 d 个 off-diagonal 的元素,这应该可行:

sum(X(:,1:end-d).*X(:,1+d:end),1)

这是因为对于 R=X*X',第 d 个 off-diagonal 具有这些元素:

R(k,k+d) = sum (X(k,:) .* X(k+d,:))