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的第二个参数指定 bin中心
  2. 使用histc的第二个参数指定 bin Edges。此函数需要进一步处理,因为它不直接生成图形 - 请点击链接查看使用示例。
于 2010-03-04T13:12:36.833 回答
2

您可以构建自己的直方图工具来创建您喜欢的自定义直方图。

  • 使用 histc 来确定每个点属于哪个 bin。

  • 然后使用 accumarray 计算每个 bin 中的元素数。

  • 然后使用 bar 绘制您选择的宽度的条。或者简单地创建给定大小的补丁。为此使用补丁。

或者更简单地说,只需使用 hist。

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