以下是测试数据集(仅供测试):
0.1 0.2 0.3 0.4 0.5 1.1 1.2 1.3 1.4 1.5 0.1 0.2 0.3 0.4 0.5。
我想要得到最小值为0.1,最大值为1.5,步长为0.1的频率计数。我已在Matlab、Octave、Origin和AWK脚本中进行了测试,但结果完全不同。
我为什么会得到这些不同的结果?是我做错了什么,还是我对“频率计数”的概念有误解?我认为以上结果都不正确...你能告诉我该怎么做吗?
1. Matlab
data = [0.1 0.2 0.3 0.4 0.5 1.1 1.2 1.3 1.4 1.5 0.1 0.2 0.3 0.4 0.5];
edge = 0.1:0.1:1.5;
count = histc(data, edge);
结果是:
count = [2 4 0 2 2 0 0 0 0 0 1 1 1 1 1]
2. Octave
data = [0.1 0.2 0.3 0.4 0.5 1.1 1.2 1.3 1.4 1.5 0.1 0.2 0.3 0.4 0.5];
edge = 0.1:0.1:1.5;
count = histc(data, edge);
结果是:
count = [2 2 2 2 2 0 0 0 0 0 1 2 0 1 1]
3. 起源
使用命令“频率计数”,设置min=0.1
,max=1.5
,步长=0.1。
结果为:
count = [2 4 0 2 2 0 0 0 0 0 2 1 1 1]
4. AWK
{...;count[data/0.1]++;} ...
结果是:
count = [2 4 0 2 2 0 0 0 0 0 2 0 2 0 1]
我为什么会得到这些不同的结果?是我做错了什么,还是我对“频率计数”的概念有误解?我认为以上结果都不正确...你能告诉我该怎么做吗?
2 4 0 2 2 0 0 0 0 0 2 1 1 0 1
。 - Paul Redge - 1e-10
,看看会发生什么。同时在末尾添加一个更多的箱子。 - R. Schifini2 4 0 2 2 0 0 0 0 0 2 0 2 0 1
(这与您使用的原始数据相同)。 - carandraug