ndhistc

Multi dimensional histogram
3.5K Downloads
Updated 16 Jan 2004

No License

function qHistogram = ndHistc (mData, vEdge1, vEdge2, ... )

* Input Arguments:

+ mData: nRecord by nDim 2-dimensional array of doubles
+ vEdge1, vEdge2, ... : nDim vectors of histogram edges

* Return value:

+ qHistogram: nDim-dimensional data cube
containing number of points in each cell
defined by histogram edges. For instance,
qHistogram(1,1,1,...) means number of data points
satisfying
vEdge1(1) <= mData(:,1) < vEdge1(2) & ...
vEdge2(1) <= mData(:,2) < vEdge2(2) & ...
vEdge3(1) <= mData(:,3) < vEdge3(1) & ...
...
* Example
mRand = rand(1e6,5);
ve1 = linspace(0,1,5);
ve2 = linspace(0,1,6);
ve3 = linspace(0,1,7);
ve4 = linspace(0,1,8);
ve5 = linspace(0,1,9);
qHist = ndhistc(mRand, ve1, ve2, ve3, ve4, ve5);

* Comparison with ndhist.m (compiled using mcc -x ndhist)
+ 1e6 by 2 data -> 5 by 6
ndhist.m 79.49 sec
ndhistc.c 0.4610 sec

+ 1e6 by 5 data -> 5 by 6 by 7 by 8 by 9
ndhist.m 199.32 sec
ndhistc.c 2.4430 sec

==> More efficient if More data points (==rows) & Less dimensions (==columns)

Cite As

Kangwon Lee (2024). ndhistc (https://www.mathworks.com/matlabcentral/fileexchange/3957-ndhistc), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R12.1
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Data Distribution Plots in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0.0

Help corrected