2012-10-21 20 views
0

我是Matlab新手。将数组拆分为n个部分,然后再次将它们连接起来形成直方图

可以说我有一个数组a = [1:1:1000]

我具有与本分割成50份1-20; 21-40 ....​​。

我想这样做。

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等等,最后我必须制作所有计数器的直方图。

+0

-1甚至不打扰谷歌或搜索首先。谷歌搜索“matlab直方图”的前两个结果是hist()(plot)和histc()(binning函数)。在SO上:http://stackoverflow.com/search?q=matlab+histogram你的答案是第二个链接。这不应该是你自己做一些工作的替代品。 – Marc

回答

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函数。

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

相关问题