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
c为求得的协方差矩阵,在matlab以矩阵a的每一列为变量,对应的每一行为样本。这样在矩阵a中就有3个列变量分别为a(:,1), a(:,2), a(:,3)。
在协方差矩阵c中,每一个元素c(i,j)为对第i列与第j列的协方差,例如c(1,2) = -4.1667为第一列与第二列的协方差。
原文链接:http://www.cnblogs.com/cvlabs/archive/2010/05/08/1730319.html