use*_*939 5 wolfram-mathematica function count
我的问题是这样的:我有一个列表list,我想迭代这个列表,并计算每个值从0到1出现在步长中的次数step.我写了以下代码:
list = {0.2, 0.2, 0.7, 0.8, 0.17};
countingfornormal[list_, step_] := Module[{temp, num, res, i},
temp = Round[list, step];
num = {};
For[i = 0, i <= 1, i += step, {
res = Count[temp, i];
AppendTo[num, {i, res}];
}];
num
]
Run Code Online (Sandbox Code Playgroud)
但是,对于0.01的步长,输出似乎只计算值高达0.17.这真让我很沮丧,我似乎无法弄明白为什么.我还注意到,对于步长为0.02,输出计数值最多为0.34.
我在开始时就完成了,因为最初我使用的是一个更大的列表,其值小数点后大约7位.
我想也许这是一个时间问题,但我不确定如何解决这个问题.
任何帮助将不胜感激.
Dr.*_*ius 10
或许更好:
list = {0.2, 0.2, 0.7, 0.8, 0.17};
b = BinCounts[list, {0, 1, 0.01}]
(*
->{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0}
*)
BarChart@b
Run Code Online (Sandbox Code Playgroud)
