在统计学与概率论中,协方差矩阵是一个矩阵,其每个元素是各个向量元素之间的协方差。(Wiki)
协方差矩阵的计算以列向量为单位,是列向量各元素之间的关系的表达。
定义为:
一个列向量也叫做一个样本向量,列向量中的元素代表样本,列向量中的元素的个数的和代表样本个数。
下图是转自他人的协方差的Matlab实现,协方差(i,j)=(第i列所有元素-第i列均值)*(第j列所有元素-第j列均值)/(样本数-1)
a
=
- 1 1 2
- 2 3 1
4 0 3
for i = 1 :size(a, 2 )
for j = 1 :size(a, 2 )
c(i,j) = sum((a(:,i) - mean(a(:,i))). * (a(:,j) - mean(a(:,j)))) / (size(a, 1 ) - 1 );
end
end
- 1 1 2
- 2 3 1
4 0 3
for i = 1 :size(a, 2 )
for j = 1 :size(a, 2 )
c(i,j) = sum((a(:,i) - mean(a(:,i))). * (a(:,j) - mean(a(:,j)))) / (size(a, 1 ) - 1 );
end
end
c =
10.3333 -4.1667 3.0000
-4.1667 2.3333 -1.5000
3.0000 -1.5000 1.0000
可参见 http://blog.csdn.net/ybdesire/article/details/6270328/
另外:
UIUC同学收集的代码合集: http://blog.csdn.net/godenlove007/article/details/8723333