Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:48   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 为什么MATLAB本机函数cov(协方差矩阵计算)使用与我预期不同的除数?

假设有M个维度和N个样本的数据矩阵数据,

data = randn(N, M); 我可以用以下公式计算协方差矩阵

data_mu = data - ones(N, 1)*mean(data); cov_matrix = (data_mu'*data_mu)./N 如果我使用本机MATLAB函数

cov_matrix2 = cov(data) 这将始终等于

cov_matrix = (data_mu'*data_mu)./(N-1) 也就是说,分母是(N-1)少一。

为什么??你能复制吗?这是一个错误吗?

我使用MATLAB版本7.6.0.324(2008)。



回答:
也就是说,分母是(N-1)少一。为什么??你能复制吗?这是一个错误吗?

请参阅cov文档 。它与总体方差与样本方差有关

还要注意,如果您希望使用分母N而不是N-1,则可以在调用中添加尾随1参数,即根据文档所述, cov(x,y,1)或cov(x,1) 。



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 21:14


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.