私は行列m
を持ち、3番目の列のヒストグラムをプロットします。最初の100ビンのピークを検索し、頻度をa
、ビンのインデックスをb
とします。今私はインデックスb
とビンのエッジが必要です。どうすれば入手できますか?ヒストグラムからビンエッジをビンのインデックスで取得する
nbins = 1000;
histo = histogram(m(:,3),nbins,'Orientation','horizontal');
[a,b] = max(histo.Values(1:100))
私は行列m
を持ち、3番目の列のヒストグラムをプロットします。最初の100ビンのピークを検索し、頻度をa
、ビンのインデックスをb
とします。今私はインデックスb
とビンのエッジが必要です。どうすれば入手できますか?ヒストグラムからビンエッジをビンのインデックスで取得する
nbins = 1000;
histo = histogram(m(:,3),nbins,'Orientation','horizontal');
[a,b] = max(histo.Values(1:100))
私はこれを行うには2つの簡単な方法を考えることができます。
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));
あなたは「トリック」についての説明が必要な場合は - そう言ってください。
ありがとうございました:) – Chaostante
@Chaostanteよろしくお願いします! –
'histcounts'または' histo.BinEdges'の出力を使用します。 –
ありがとうございます! :D 'c = histo.BinEdges(b)'と書くと、値が1つ戻ってきます。これは、左または右のbinEdgeですか、私の場合は、下端または上端ですか? – Chaostante
質問しないでください - 自分自身で試してみてください:)(ヒント: 'BinEdges'ベクトルは' Values'より1長いです) –