有一个数据集(仅用于测试)如下: 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 我想通过 bin(步长)获得最小 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.八度
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
,step size=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]
为什么我会得到这些不同的结果?我做错了什么,还是我误解了“频率计数”的概念?我认为上述任何结果都不正确...您能告诉我该怎么办吗?