我需要帮助。我正在使用使用hist命令的matlab代码,我需要java等效代码或matlab中的hist函数背后的逻辑,以便我可以在java或c.Thanks中提前编码。
答案 0 :(得分:1)
直方图的简单逻辑(假设你知道宽度恒定的箱子,并且你不需要最有效的代码):
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
中有一个数据的直方图,其中两个计数器对应于不适合该范围的数据(低于或超出范围)。
免责声明:无需编译器即可进行测试。看起来&#34;关于正确&#34; - 在依赖它之前在已知案例上进行测试。