Частотная гистограмма в С - PullRequest
2 голосов
/ 12 сентября 2009

может кто-нибудь подсказать, как будет выглядеть псевдокод гистограммы?

Ответы [ 2 ]

7 голосов
/ 12 сентября 2009

Как структурировать и заполнить гистограмму?

Тривиальный случай - это всего лишь счет на бин:

/* 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;
}

Для взвешенной гистограммы массив должен иметь тип с плавающей запятой.

При наличии большего количества данных (подсчетов избыточного и недостаточного расхода, накопленной статистики ... или даже для сохранения ограничений в том же месте, что и подсчет), используйте структуру, включающую массив.

Инкрементное заполнение часто желательно, но оно должно быть очевидным.

Вывод во многом зависит от того, какая технология отображения у вас под рукой.

0 голосов
/ 12 сентября 2009

Что ж, у вас наверняка будет куча операторов printf вверху, чтобы ваши заголовки могли придать смысл данным. Тогда, может быть, строка из тире или равно или что-то для работы в качестве разделителя.

Затем, ниже этого, переберите массив со значениями, которые вы хотите построить. По одному в каждой строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...