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

时间:2012-10-21 09:49:14

标签: arrays matlab histogram

我是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等等,最后我必须对所有计数器进行直方图。

1 个答案:

答案 0 :(得分:1)

您可以使用one functionhistc完成所有这些操作。在你的情况下:

X = (1:1:1000)';
Edges = (1:20:1000)';
Count = histc(X, Edges);

基本上,Count包含X中属于Edges中定义的类别的元素数,其中Edges是一个单调递增的向量,其元素定义了边界顺序类别。一个更常见的例子可能是使用概率密度来构造X,例如,均匀分布,例如:

X = 1000 * rand(1000, 1);

使用XEdges的规范,您应该明白这一点。如果您想要实际的直方图,请查看hist函数。

关于你问题的第二部分,我不太确定你在问什么。