从直方图中获得均值和标准差

时间:2013-12-19 09:46:37

标签: matlab octave histogram mean

我可以在直方图中得到该特定条(bin)的均值和标准差吗?如果是,我应该使用什么功能或命令?

例如, 假设我有一个(1000,1)测量矩阵,我想在直方图中对它进行分组。 y轴是测量数,x轴是测量值。对于x轴,我们将有0-9,10-19,20-29,30-39等范围。我怎么可能得到标准偏差和20-29范围的平均值?

我正在使用八度音乐。谢谢你。

1 个答案:

答案 0 :(得分:4)

我怀疑你可以从直方图中获取这些信息,我想你需要从原始数据中获取它。

data = rand(1000,1)*100;

提取存储在bin中的数据

data_subset = data(data >= 20 & data < 30);

然后得到均值和标准

m = mean(data_subset);
s = std(data_subset);

我想你想一次性完成所有的垃圾箱,为此你需要accumarray

data = sort(data);
bin_size = 10;
subs = ceil(data/bin_size);
M = accumarray(subs, data', [length(unique(subs)),1], @mean)
S = accumarray(subs, data', [length(unique(subs)),1], @std)