我需要帮助。我正在使用使用 hist 命令的 matlab 代码,我需要 java 等效代码或 matlab 中 hist 函数背后的逻辑,以便我可以在 java 或 c 中对其进行编码。提前致谢。
问问题
292 次
1 回答
1
直方图的简单逻辑(假设您知道恒定宽度的 bin,并且您不需要最有效的代码):
float x[50]; // assumed to be array of data values
float binWidth, firstBin; // bins of width binWidth; first one centered on firstBin
int numBins; // number of bins
int *bins, tooSmall = 0, tooLarge = 0, ii, indx;
bins = (int*)calloc(numBins * sizeof(int)); // allocate, set to zero
for(ii = 0; ii < 50; ii++) {
indx = floor((x[ii]-firstBin)/binWidth + 0.5);
if (index < 0 ) {
tooSmall++;
}
elseif (index >= numBins) {
tooLarge++;
}
else {
bins[indx]++;
}
}
}
最后,您有一个数据的直方图x
,其中有两个计数器对应于不适合该范围的数据(低于或超出范围)。
免责声明:在没有编译器测试的情况下编写。看起来“大约正确” - 在依赖它之前先在已知案例上进行测试。
于 2013-06-30T05:04:22.363 回答