通过bin

时间:2017-01-06 12:17:46

标签: matlab histogram binning matrix-indexing

我有一个矩阵m并绘制第三列的直方图。我在前100个箱中搜索峰值,并将频率设为a,将箱的索引设为b。现在我需要索引为b的bin的边缘。我怎么能得到它们?

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

1 个答案:

答案 0 :(得分: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));

如果你需要对“技巧”的解释 - 请说出来。