matlab中的cov(x,1)和实际计算结果不同

今天发现cov(x,1)和我自己计算的结果不同,就去看了cov的源码。发现cov源码计算和定义不同,麻烦大家帮忙看下。

为什么cov(x,1)结果是xy = (xc' * xc) / m?源码中,xc = bsxfun(@minus,x,sum(x,1)/m)是减去列的平均值,根据自协方差的定义,结果应该是xy=xc*xc'/n啊

第一个没懂的地方是为什么源码的转置放在第一个xc。根据定义转置应该放在第二个xc啊。

第二个没懂的地方是为什么结果是除以行数(m)而不是列数(n)?

先谢谢大家了!

https://blog.csdn.net/jiumi123/article/details/40582633