HISTWEIGHT bins scattered data points defined in any dimension weighting them into uniform bins of specified granularity. Each data point has an associated intensity value which is spread to the neighbouring bins with a weight defined by three different methods (invsquared, diff or area). Limits of binning can be defined, different for each dimension. The granularity downsample the limits and increase the number of bins.
Examples of how the function works are depicted in the following figure. Granularity is set to 1 and area method is used for all of them.
- 1-dimensional uniform points sampled from a sine wave with decreasing amplitude:
- 2-dimensional random points with two different intensities:
- 2-dimensional random points sampled within a circle, with a larger intensity in a inner circle:
- 3-dimensional uniform points sampled within a emisphere, with intensity increasing with the radius:
WHY HISTWEIGHT? The MATLAB function histcounts allows to bin scattered data points into quantiles and counts the number of points falling into each quantile. HISTWEIGHT improves histcounts by considering intensity values for each data point that are spread across the neighbouring quantiles. Note that in this way energy conservation is respected as the total sum of the intensity values associated to each point is equal to the total sum of the intensity values associated to each bin. This does not happen with MATLAB histcounts. THe following figures show a comparison of HISTWEIGHT against MATLAB histcounts using three different methods for a set of 10 randomly distributed points: