使用下面的代码我试图在dist
的每一行中创建值的直方图,其中hist
的每一行是10个箱的直方图。
step
是浮点值(0.12158 ...)。
for(i = 0; i < dist.length; i++){
for(j = 0; j < dist[0].length; j++){
bin = parseInt(dist[i][j]/step);
if(bin == 10)
bin = 9;
hist[i][bin]+=1;
}
}
dist
是一个声明为:
var dist = [];
for(var x = 0; x < 77; x++){
dist[x] = [];
for(var y = 0; y < 50; y++){
dist[x][y] = x*y;
}
}
hist
同样声明为:
var hist = [];
for(var x = 0; x < 77; x++){
hist[x] = [];
for(var y = 0; y < 10; y++){
hist[x][y] = x*y;
}
}
hist
的第一行给出了我期望的结果,频率总计为50.但是,下一行的二进制数中的值不是从零开始,所以这些值是来自先前直方图的值加上当前值的总和。
例如,hist
的第一行:
[1, 10, 8, 9, 6, 7, 4, 3, 1, 1]
hist
的第二行:
[1, 10, 10, 13, 10, 12, 10, 9, 10, 10]
非常感谢任何帮助!