C中的频率直方图

时间:2009-09-11 22:56:23

标签: c

有人能给我一个关于直方图的伪代码看起来如何的暗示吗?

2 个答案:

答案 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语句,可以为数据赋予一些含义。然后可能是一行破折号或等号或其他东西作为分隔符。

然后在下面,循环一个包含您想要绘制的值的数组。每行一个。