0

我是 Matlab 的新手。

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

我必须把它分成 50 个部分1-2021-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 依此类推,最后我必须制作所有计数器的直方图。

4

1 回答 1

1

您可以使用一个功能完成所有这些操作:histc. 在你的情况下:

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

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

X = 1000 * rand(1000, 1);

X玩弄and的规范Edges,你应该明白了。如果您想要实际的直方图,请查看该hist函数。

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

于 2012-10-21T09:56:09.520 回答