【发布时间】:2012-01-13 18:00:43
【问题描述】:
是否有通用的解决方案可以从输入的一维双精度数据数组创建一维直方图数据数组?
不想在 C 中绘制直方图,我只需要一些东西来通过合并数据来创建直方图一维数组。
有人可以帮我理解 C 中的分箱(例如循环)代码可能是什么样子吗?假设最小和最大数据点是已知的,并且我们想要使用不同的 bin 的可变数量(例如hist_pts)。
【问题讨论】:
是否有通用的解决方案可以从输入的一维双精度数据数组创建一维直方图数据数组?
不想在 C 中绘制直方图,我只需要一些东西来通过合并数据来创建直方图一维数组。
有人可以帮我理解 C 中的分箱(例如循环)代码可能是什么样子吗?假设最小和最大数据点是已知的,并且我们想要使用不同的 bin 的可变数量(例如hist_pts)。
【问题讨论】:
int* bin = calloc(hist_pts,sizeof(int));
float interval = (float)(max - min ) / num_bins;
for (i=0;i<N;i++)
bin[ (int)((value[i]- min)/interval) ]++;
//don't forget to `free(bin) after you use it.
【讨论】:
value 中的元素数吗?
hist_pts”部分。更正。