Group an array into a set of equal-width groups (by group width).
grpBinWidth( Integer_Type numChans, Integer_Type grpWidth )
grpBinWidth( Integer_Type numChans, Integer_Type grpWidth, Array_Type
tabStops )
Returns: ( Array_Type grouping, Array_Type quality )
This function returns the grouping and quality arrays
that represent an array of numChans elements
in which the groups are each grpWidth elements wide.
The optional parameter tabStops is an array
which lists those elements that should be ignored.
This function provides the same functionality
as the BIN_WIDTH option of dmgroup.
The grpNumBins() function allows you to fix
the number of groups rather than the width
of each group.
chips> (g,q) = grpBinwidth( 10, 2 )
This example calculates the grouping and quality arrays
that represent an array of 10 elements in which each
group has a width of 2 elements.
chips> x = [0.5:6.0:0.05]
chips> y = 3 + 30 * exp( - (x-2.0)^2 / 0.1 )
chips> (g,q) = grpBinWidth( length(y), 10 )
chips> ysum = grpGetGroupSum( y, g )
chips> nchan = grpGetChansPerGroup( g )
chips> i = where( g == 1 )
chips> yavg = ysum[i] / nchan[i]
chips> curve( x, y )
chips> simpleline
chips> curve( x[i], yavg )
chips> symbol square
chips> symbol red
Here we take the function
y = 3 + 30 * exp( -(x-2)^2 / 0.1 )
and group it so that each group contains 10 elements.
The plot shows the original data (the solid line and the
crosses) and the grouped data (as the
red squares); the latter has been normalised by the
width of each group and is displayed at the left-edge
of each group.
If we had filtered the data array to only contain
elements with a quality value - as returned by
grpBinWidth() - of 0, then we could have avoided the
call to grpGetChansPerGroup() since this is
set to 10 by grpBinWidth().
- group
-
grpadaptive,
grpadaptivesnr,
grpbin,
grpbinfile,
grpbinwidth,
grpgetchanspergroup,
grpgetgroupsum,
grpgetgrpnum,
grpmaxslope,
grpminslope,
grpnumbins,
grpnumcounts,
grpsnr
- modules
-
group
|