循环是人递归是神 2018-11-03 13:12 采纳率: 100%
浏览 1299
已结题

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)?

先谢谢大家了!

  • 写回答

1条回答 默认 最新

  • devmiao 2018-11-03 15:47
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?