Matlab中带约束的直方图绘制
我想用以下输出绘制直方图:Matlab中带约束的直方图绘制,matlab,plot,histogram,Matlab,Plot,Histogram,我想用以下输出绘制直方图: (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
(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
这将产生这样的结果
data = rand(100,1);
n = hist(data);
10 8 12 12 10 3 10 12 12 11
当我试着
n = hist(data,7);
我得到
&这正是我想要的,每个箱子中至少有7个元素同时,我也想谈谈(c)和(d)部分
因此,为了确保每个箱子中的元素数量正确,我尝试如下:
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=长度(数据);
n=历史(数据,i);
最小值=7;%每个箱子中的最小数量
对于j=1:长度(n)
如果n(j)
但是我犯了一些错误。谢谢您的帮助。我认为基于您自己的代码可以做到这一点:
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)
(b) 。每个箱子中的数据
- 如果你指的是每个箱子的计数数,那当然是由
直接返回为hist
n
- 如果您的意思是,从每个数据条目指向其对应的bin的指针,我建议修改
(制作一个副本作为您自己的个人版本),以返回hist
中运行的histc
的输出,或者在计算出直方图的边缘后调用histc
histc
binedges = [bins'-binsize/2 bins'+binsize/2]
hist
使用大小相同的箱子,因此
binsize = bins(2)-bins(1)
(d) 。每个料仓的料仓开始和料仓结束
binedges = [bins'-binsize/2 bins'+binsize/2]
我认为基于您自己的代码可以做到:
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)
(b) 。每个箱子中的数据
- 如果你指的是每个箱子的计数数,那当然是由
直接返回为hist
n
- 如果您的意思是,从每个数据条目指向其对应的bin的指针,我建议修改
(制作一个副本作为您自己的个人版本),以返回hist
中运行的histc
的输出,或者在计算出直方图的边缘后调用histc
histc
binedges = [bins'-binsize/2 bins'+binsize/2]
hist
使用大小相同的箱子,因此
binsize = bins(2)-bins(1)
(d) 。每个料仓的料仓开始和料仓结束
binedges = [bins'-binsize/2 bins'+binsize/2]
Matlab的函数有什么问题?它有你所有的信息。是的,但我希望每个箱子里至少有7个元素。如果一个箱子中的元素数量少于7,则需要反复播放箱子的数量。所以,我想我必须在别的地方使用一些。你能澄清一下“但我犯了一些错误”吗?你收到错误信息了吗?如果是,请将其包括在问题中。如果代码没有达到您期望的效果,请描述一下。Matlab的函数有什么问题?它有你所有的信息。是的,但我希望每个箱子里至少有7个元素。如果一个箱子中的元素数量少于7,则需要反复播放箱子的数量。所以,我想我必须在别的地方使用一些。你能澄清一下“但我犯了一些错误”吗?你收到错误信息了吗?如果是,请将其包括在问题中。如果代码没有达到您期望的效果,请描述它。