我是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等等,最后我必须对所有计数器进行直方图。
答案 0 :(得分:1)
您可以使用one function:histc
完成所有这些操作。在你的情况下:
X = (1:1:1000)';
Edges = (1:20:1000)';
Count = histc(X, Edges);
基本上,Count
包含X
中属于Edges
中定义的类别的元素数,其中Edges
是一个单调递增的向量,其元素定义了边界顺序类别。一个更常见的例子可能是使用概率密度来构造X
,例如,均匀分布,例如:
X = 1000 * rand(1000, 1);
使用X
和Edges
的规范,您应该明白这一点。如果您想要实际的直方图,请查看hist
函数。
关于你问题的第二部分,我不太确定你在问什么。