簡體   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