繁体   English   中英

Matlab中带有约束的直方图

[英]Histogram plot in Matlab with constraints

我想用以下输出绘制直方图:

   (a). number of bin
   (b). data in each bin
   (c). bin size for each bin
   (d). bin start & bin end for each bin

每个垃圾箱必须至少包含7个元素。 我尝试了这样的事情

  data = rand(100,1);
  n = hist(data);

这样会得到这样的结果

  10     8    12    12    10     3    10    12    12    11

当我尝试

  n = hist(data,7);

我有

  15    14    17     9    11    16    18

这正是我想要的,每个容器中至少有7个元素! &同时,我也想介绍(c)和(d)部分。

因此,为确保已在每个bin中获得正确数量的元素,我尝试这样做:

  data = rand(100,1);
  i = length(data);
  n = hist(data, i);
  min_number = 7;   % minimum no. in each bin
  for j = 1:length(n)
     if n(j) < min_number
      i = i-1;
      n = hist(data,i);
     end
  end

但是我犯了一些错误。 谢谢你的帮助。

我认为根据您自己的代码可以做到:

data = rand(100,1);
i = length(data);
n = hist(data, i);
min_number = 7;   % minimum no. in each bin
while any(n < min_number)
     i = i-1;
     [n bins] = hist(data,i);
end

figure
bar(bins,n)

(一种)。 箱数

nbin = length(bins);

(b)中。 每个仓中的数据

  • 如果您的意思是每个bin的计数数,那当然是hist直接返回为n
  • 如果您的意思是从每个数据条目指向其对应的bin的指针,我建议您修改hist (将副本作为您自己的个人版本)以返回在hist运行的histc的输出,或者在弄清楚边缘之后调用histc直方图的

(C)。 每个垃圾箱的垃圾箱大小

hist使用大小相等的垃圾箱,因此

binsize = bins(2)-bins(1)

(d)。 每个仓位的仓位开始和仓位结束

binedges = [bins'-binsize/2 bins'+binsize/2]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM