2017-01-06 92 views
0

我有一個矩陣m並繪製了第三列的直方圖。我搜索前100個分箱中的峯值,得到的頻率爲a,分箱索引爲b。現在我需要索引b的垃圾箱邊緣。我怎樣才能得到它們?通過容器索引從直方圖獲取容器邊緣

nbins = 1000; 
histo = histogram(m(:,3),nbins,'Orientation','horizontal'); 
[a,b] = max(histo.Values(1:100)) 
+1

使用'histcounts'或'histo.BinEdges'的輸出。 –

+0

謝謝! :D 當我寫'c = histo.BinEdges(b)'我得到一個值。這是左邊還是右邊的binEdge,或者在我的情況下,是下邊還是上邊? – Chaostante

+1

不要問 - 自己試試...... :)(提示:BinEdges向量比'Values'長1) –

回答

1

我能想到的兩種簡單的方法來做到這一點:

function q41505566 
m = randn(10000,5); 
nBins = 1000; 

% Option 1: using histcounts: 
[N,E] = histcounts(m(:,3),nBins); 
disp(E(find(N(1:100) == max(N(1:100)),1,'first')+[0 1])); % find() returns the left bin edge 

% Option 2: using BinEdges: 
histo = histogram(m(:,3),nBins,'Orientation','horizontal'); 
[a,b] = max(histo.Values(1:100)); 
disp(histo.BinEdges(b:b+1)); 

如果你需要的「招數」的解釋 - 請說出來。

+0

非常感謝:) – Chaostante

+0

@Chaostante不客氣! –

相關問題