Arrays 将数组拆分为n个部分,然后将它们再次合并,形成直方图

Arrays 将数组拆分为n个部分,然后将它们再次合并,形成直方图,arrays,matlab,histogram,Arrays,Matlab,Histogram,我对Matlab是新手 假设我有一个数组a=[1:1:1000] 我必须把它分成50个部分1-2021-40981-1000 我正试图这样做 E=1000X a=[1:E] n=50 d=E/n b=[] for i=0:n b(i)=a[i:d] end 但我无法得到结果 我正在研究的第二部分是,根据另一个结果,假设我的答案是3,第一个拆分数组应该有一个计数器,它应该是+1,如果答案是45,则第三个拆分数组的计数器应为+1,依此类推,最后我必须为所有计数器制作一个直方图。您可以使用:h

我对Matlab是新手

假设我有一个数组
a=[1:1:1000]

我必须把它分成50个部分
1-20
<代码>21-40<代码>981-1000

我正试图这样做

E=1000X
a=[1:E]
n=50
d=E/n
b=[]
for i=0:n
   b(i)=a[i:d]
end
但我无法得到结果


我正在研究的第二部分是,根据另一个结果,假设我的答案是3,第一个拆分数组应该有一个计数器,它应该是+1,如果答案是45,则第三个拆分数组的计数器应为+1,依此类推,最后我必须为所有计数器制作一个直方图。

您可以使用:
histc
完成所有这一切。在你的情况下:

X = (1:1:1000)';
Edges = (1:20:1000)';
Count = histc(X, Edges);
本质上,
Count
包含
X
中属于
中定义的类别的元素数量,其中
是一个单调递增的向量,其元素定义了连续类别的边界。一个更常见的例子可能是使用概率密度(例如均匀分布)构造
X
,例如:

X = 1000 * rand(1000, 1);
仔细研究
X
边的规格,你应该会明白这一点。如果需要实际的直方图,请查看
hist
函数


至于你问题的第二部分,我真的不知道你在问什么。

-1感谢你甚至没有先去谷歌或搜索。谷歌搜索“matlab直方图”的前两个结果是hist()(绘图)和histc()(装箱函数)。关于SO:你的答案是第二个链接。这不能代替你自己做一些工作。