[英]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)中。 每个仓中的数据
hist
直接返回为n
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.