有人能给我一个关于直方图的伪代码看起来如何的暗示吗?
答案 0 :(得分:7)
如何构建和填充直方图?
琐碎的案例只是每箱的计数:
/* 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;
}
对于加权直方图,数组必须是浮点类型。
使用更多数据(过流和欠流计数,累计统计数据......或者甚至将限制保持在与计数相同的位置),使用包含数组的结构。
通常需要增量填充,但从这里开始就应该很明显。
输出在很大程度上取决于您手头的显示技术。
答案 1 :(得分:0)
好吧,你的标题顶部可能有一堆printf语句,可以为数据赋予一些含义。然后可能是一行破折号或等号或其他东西作为分隔符。
然后在下面,循环一个包含您想要绘制的值的数组。每行一个。