我想用Matlab来计算我编译的人口的标准偏差。
matlab函数将一个大的总体向量作为输入,并输出标准开发。
但是,出于优化目的,我有一组单独的数据点,而不是一个大的向量,以及每个点的使用次数。
我可以使用循环并创建一个庞大的人口向量,但这并不理想。
我怎么能这样做?
答案 0 :(得分:3)
definition of standard deviation非常简单:只需引入权重来计算每个数据点的重复次数:
data = [1 3 4 2 4]; %// data values
count = [4 5 4 5 8]; %// number of times for each value
mu = sum(data.*count)./(sum(count));
dev = sqrt(sum((data-mu).^2.*count)./(sum(count)-1)); %// or ./sum(count)