7

ビンが等しくない(間隔)ヒストグラムを作成したいのですが、Matlabは、図のようにビンが等しいヒストグラムのみを作成します。

助けてください...どうもありがとう!!

4

3 に答える 3

16

次に例を示します。

x = randn(100,1)*3;           %# some random data
e = [-10 -5 -3 -1 1 2 3 20];  %# edges of intervals:  e(i) <= x < end(i+1)
c = histc(x,e);               %# get count in each interval
bar(e, c, 'histc')            %# bar plot
set(gca, 'xlim',[e(1) e(end)])

出力

于 2010-03-04T17:29:43.543 に答える
5

2つの解決策:

  1. histの2番目の引数でビンの中心を指定します。
  2. histcの2番目の引数でbinEdgesを指定します。この関数はグラフを直接生成しないため、さらに処理が必要です。使用例については、リンクをたどってください。
于 2010-03-04T13:12:36.833 に答える
2

独自のヒストグラムツールを作成して、必要に応じてカスタムヒストグラムを作成できます。

  • histcを使用して、各ポイントがどのビンに含まれるかを判別します。

  • 次に、accumarrayを使用して、各ビンの要素数をカウントします。

  • 次に、バーを使用して、選択した幅のバーを描画します。または、指定されたサイズのパッチを作成するだけです。そのためのパッチを使用してください。

または、もっと簡単に言えば、histを使用するだけです。

hist(rand(1000,1),[0 .1 .3 .6 1])
于 2010-03-04T13:10:09.000 に答える