首页 > 解决方案 > 有人可以解释一下 Matlab std() 实现逻辑吗?

问题描述

根据文档,std函数计算每列的标准偏差。但是,当我对第一列使用标准偏差公式时,我的结果与 Matlab 的结果不同。

Matlab的结果如下:

A = [4 -5 1; 2 3 5; -9 1 7];
S = std(A)
S = 1×3
7.0000    4.1633    3.0551

通过对第一列使用标准偏差公式,我得到:

sqrt(((4 + 1) ^ 2 + (2 + 1) ^ 2 + ( - 9 + 1) ^ 2) / 3) =
5.71547606649

5.71547606649 与 7.00 不同。我在做什么错 D: ?

非常感谢您的宝贵时间,祝您有美好的一天:D!

标签: matlab

解决方案


看看标准公式。根据 matlab 文档,它说sqrt(1/(N-1) etc)你必须除以 2 而不是 3 。

请参阅更多关于std 文档的章节。

此外,您可以使用它来将 std 公式与1/N, std(A,1). 第二个输入指定要使用的公式,0 表示使用1/(N-1)公式(默认),1 表示使用1/N公式。


推荐阅读