如何构建和填充直方图?
琐碎的案例只是每箱的计数:
/* needs error checking, badly */
int *buildHist(int bins, double min, double max, int n, double *data){
double *hist=malloc(bins*sizeof(int));
if (hist == NULL) return hist;
for (int i=0; i<n; ++i){
int bin=int( (data[i]-min)/((max-min)/(bins)) );
if ( (bin>=0) && (bin<n) ) hist[bin]++;
}
return hist;
}
Run Code Online (Sandbox Code Playgroud)
对于加权直方图,数组必须是浮点类型.
使用更多数据(流量过多和流量不足,累计统计数据......或者甚至将限制保持在与计数相同的位置),使用包含数组的结构.
通常需要增量填充,但从这里开始应该是显而易见的.
输出很大程度上取决于您手头的显示技术.