0

只是我试图理解的一般 Matlab 矩阵技巧?这条线在逻辑上的真正含义是什么?

S=X*X';

如果我将任何通用矩阵与自身转置,S 会完成什么?谢谢

4

2 回答 2

4

如果X是一个通用NxM矩阵,则S=X*X'是 的每一列的外积X与其转置的总和。换句话说,写作X=[x1,x2,...,xM]S可以写成

S = ∑_i x_i * x_i'

结果矩阵S是非负定的(即,特征值不是负数)。

如果您将 的列中的每个元素X视为随机变量(total N),并将不同的列视为维度随机向量M的独立观察值,则样本协方差矩阵(由常数归一化不同,取决于您的约定)行。同样,为您提供列的协方差矩阵。NSNxN S=X'*XMxM


现在,如果您开始限制一般性并为 分配特殊属性X,那么您将开始看到 的结构出现模式S。例如,如果X是正方形,具有实数并且是正交的,则S=I是单位矩阵。如果X是方阵,具有复数项并且是酉矩阵,那么S又是单位矩阵。

在不知道在您的程序中使用它的确切情况的情况下,我会假设他们正在计算协方差矩阵。

于 2011-11-22T01:34:33.110 回答
2

这是一个示例,展示了这与协方差矩阵的关系(正如@yoda解释的那样):

X = randn(5,3);                     %# 3 column-vectors each of dimension=5
X0 = bsxfun(@minus, X, mean(X,2));  %# zero-centered

C = (X0*X0') ./ (size(X0,2)-1)      %'# sample covariance matrix
CC = cov(X')                        %'# should return the same result
于 2011-11-22T02:01:50.963 回答