【发布时间】:2011-08-15 12:58:08
【问题描述】:
我的问题是:
我有一个列表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
]
但是,对于 0.01 的步长,输出似乎只计算到 0.17 的值。这真的让我很沮丧,我似乎无法弄清楚为什么。我还注意到,对于 0.02 的步长,输出将值计数到 0.34。
我在开始时四舍五入,因为最初我使用的是一个较大的列表,其值大约在小数点后 7 位。
我认为这可能是时间问题,但我不确定如何解决这样的问题。
任何帮助将不胜感激。
【问题讨论】:
标签: function count wolfram-mathematica