2012-10-21 46 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函數。

至於你的問題的第二部分,我不確定你在問什麼。

相關問題