| Prev | Next | histo |
| Syntax |
y = histo(xdata,xends) (no centers return) |
| Syntax |
y = histo(xdata,xends,xcenters) (centers return) |
| Include: |
include spt\histo.oms |
| See Also |
ARGUMENTS:
INPUTS:
xdata = MATRIX, any numerical type, coerced to DOUBLE for
internal processing. Represents data to be
histogrammed arranged in columns.
xends = VECTOR, COLUMN, any numerical type, coerced to DOUBLE
for internal processing. Represents the endpoints of
the partition for the histogram.
xcenters = OPTIONAL, any numerical type, coerced to DOUBLE for
internal processing. Used to return center points
of the input partition.
RETURN: MATRIX, DOUBLE, histogram of input data on a column-by-column basis.
Return a histogram of input data matrix.
Data to be histogrammed is input through matrix 'xdata'. Each
column of the input is considered as a vector of data values.
Each column is histogrammed independently of all other
columns.
The endpoints of the partioning that forms the basis for the
histogram are passed in through column vector 'xends'. These
endpoints are sorted in ascending order before processing.
This same partion is applied to all columns of the data input
matrix. The number of intervals tested is therefore equal to
[coldim(xends)-1]. Intervals are interpretted as being
contiguous, i.e., there is no open space between any two
intervals. The endpoints need not be evenly spaced. If the
same endpoint is cited twice in the 'xends' vector an
interval of zero width results. Each interval is half-open on
its upper end. This means that the upper endpoint of the
highest interval is not included in that interval. At least
two endpoints must be specified.
The optional argument 'xcenters' may be used to return a
column vector of the computed center points of each of the
histogram intervals. Its type may be of any kind but will be
returned as a DOUBLE column vector of [coldim(xends)-1]
elements. This vector may be used to plot the columns of the
returned histogram.
The returned histogram is normalized such that the sum of
each column is equal to unity.
Do a histogram of normally distributed noise data. Make several columns
of input data, average them, and plot the averaged histogram to verify
the typical gaussian "bell curve".
include spt\spthead.oms
#--- Create AWGN distributed random data ---
mean = 0d0; # Zero-mean
sigma = 1d0; # STD = 1.0
Nsamp = 2048; # Samples of data per column
Ncol = 128; # Number of columns of data
ranseed; # Randomize the noise generator
xdata = awgn(mean,sigma,Nsamp,Ncol); # Make the noise
#--- Define x-axis partition ---
Nends = 51; # Number of interval endpoints
xstart = -4d0; # Starting amplitude
xinc = .16d0; # Increment per interval
xends = xstart + (seq(Nends)-1) * xinc; # Vector of endpoints
#--- Do the histogram ---
xcenters = novalue; # Declare return for center points
H = histo(xdata,xends,xcenters); # Make the histogram
Havg = rowsum(H); # Add columns together for averaging
Havg = Havg/max(Havg); # Normalize to Peak = 1.0 for plotting
Reference