1.源码阅读
使用
open cov
阅读MATLAB源码。别看前面的注释,容易混
2.原理
MATLAB输入矩阵X是m*n大小。请注意:
m是#features,n是#samples。
计算的主要代码是:
xc = x - sum(x,1)./m; % Remove mean
c = (xc' * xc) ./ denom;
denom为m-1(m>1)或m(m = 1)。非常有意思的是:
a.先移除均值&移除均值的方式;
b.denorm 是用来normlize.参考之前的文章,应该是把features看做样本
3.应用
使用MATLAB计算X自己的协方差矩阵,是把n列视为n个样本向量;计算A,B向量也是如此——X = [A B]。那么,计算矩阵A,B呢:
通过官网举的例子,在运行代码的时候,我们可以发现:
并不是简单的把A,B矩阵拼在一起,而是:
分别把A,B拉成向量,得到向量a,b,再拼在一起:x = [a b]
所以最后结果是2*2大小的,因为只有两个样本(x,y);只要求A,B元素个数相同,而不要求A,B的行列数相同