按求取方差公式的不同,方差有两种biased(有效估计的方差)和unbiased(无偏估计的方差),前者除以n;后者除以n-1,叫做Bessel's
correction,可以修正样本的variance,更精确描述样本空间。matlab默认采用的是后者。下面例举matlab求方差的操作,在MATLAB中,默认为无偏估计。
b1 = var(a); % 按默认来求
b2 = var(a, 0); % 默认的公式(用N-1)
c1 = var(a, 1); % 另外的公式(用N)
d1 = var(a, 0, 1); % 对每列操作(用N-1)
d2 = var(a, 0, 2); % 对每行操作(用N-1)
d3 = var(a, 1, 1); % 对每列操作(用N)
d4 = var(a, 1, 2); % 对每行操作(用N)
e = var(a'); % 求转置矩阵
f = var(a(:)); % 通过直接访问矩阵的存储,来对矩阵进行操作
另外,如果觉得对矩阵操作不方便的话,可先将矩阵化为向量再求方差。
a=reshape(a,M*N,1);
Vr=var(a);
即可求得。