Matlab中cov函数详细解读


1。向量的方差与协方差矩阵
cov(x) 
求向量x的方差。
cov(x) 为一个数值,数值大小计算公式为S(x)。
cov(x,y) 
求向量x与y的协方差矩阵。
cov(x,y) 为2*2矩阵,
[ S(x) C(x,y);
 C(y,x) S(y);]
2。矩阵协方差矩阵
cov(X) 
求矩阵X的协方差矩阵。 diag(cov(X))得到每一个列向量的方差。 sqrt(diag(cov(X)))得到每一个列的标准差。
若X大小为M*N,则 cov(X) 大小 为N*N的矩阵。cov(X)  的第(i,j)个元素等于 X的第i列向量与第j列向量的方差,即C(Xi,Xj)。
cov(X,Y) 
求矩阵X与Y的协方差矩阵。
若X大小为M*N,Y为K*P,则 X,Y的大小必须满足 M*N=K*P,即 X,Y的元素个数相同。
此时,cov(X,Y)  等于cov([X(:) Y(:)])和 cov(X(:),Y(:)),即计算两个向量的协方差矩阵,得到的结果为 2*2矩阵。
[ S( X(:) ) C( X(:) , Y(:) ); 
C( Y(:) , X(:) ) S( Y(:) );]
可知,S(X) =C(X,X).
3。关于归一化的问题
 在上述的S(X),C(X,Y)计算中,采用的归一化参数是1/(N-1) ,其中N是向量中元素的个数。而下面的调用形式采用的归一化参数是1/N。对应的公式如下图所示。
cov(x,1)
求向量x的方差。计算方法如cov(x),但归一化参数为 1/N。
cov(x,y,1)
求向量x与y的协方差矩阵。 计算方法如cov(x,y),但归一化参数为 1/N。
 4。PS:
为区别对待,
cov(x)又记作cov(x,0)
cov(x,y)又记作cov(x,y,0)
cov(X) 又记作cov(X,0)
cov(X,Y) 又记作cov(x,y,0)
对于归一化参数为 1/(N-1)的情况,当N=1时,自动将参数调整为 1/N。

你可能感兴趣的:(matlab,cov,协方差)