2013-12-19 367 views
0

是否可以得到直方圖中特定條(bin)的平均值和標準偏差?如果是,我應該使用什麼功能或命令?例如, 假設我有一個(1000,1)度量矩陣,我想用直方圖將它分組。 y軸是測量的數量,x軸是測量值。對於x軸,我們將有0-9,10-19,20-29,30-39等的範圍。我怎麼可能得到20-29範圍的標準偏差和平均值?從直方圖中獲取平均值和標準差

我正在使用八度。謝謝。

+0

對不起,我忘了提及它。我正在使用Octave – user3082696

+0

讓我們先看看你的代碼來計算直方圖嗎? – Dan

+0

我正在使用hist(x)函數。 – user3082696

回答

4

我懷疑你可以從直方圖本身獲取該信息,我認爲你需要從你的原始數據中獲取它。

data = rand(1000,1)*100; 

提取,在你的bin落在數據

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

然後,只需獲得的平均值和STD

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) 
+0

謝謝你的建議。我在想如果有可能直接從直方圖bin本身獲得均值和標準偏差。顯然不是=( – user3082696

+1

@ user3082696我相信你不能。該信息不在直方圖中,但我已經添加了代碼如何使用'accumarray'在一次簡單的拍攝中得到它 – Dan