## bbrescale

This function is not yet fully documented. This is a transcript of
the text-formatted help.

bbrescale Create a black-box operator for rescaling
BB=bbrescale(DIM1,DIM2) creates an operator to rescale a hypercube of
dimension DIM1 to one of dimension DIM2. Additional keywords may be
added to specify the method.
First the input is expanded to a continuous function over the
hypercube. The following methods are available:
'const' - Piecewise constant (default)
AKA 'constant', 'pixel', and 'voxel'
'linear' - Piecewise linear
'cubic' - Piecewise cubic, derivatives estimated by central difference
'spline' - Piecewise cubic, derivatives continuous to 2nd order
Piecewise cubic expansions ('cubic' and 'spline') can additionally
specify how endpoints are treated:
'midway' - Derivative is determined at the middle of the end-segments
(default)
'clamped' - Derivative is zero
'natural' - 2nd derivative is zero
'splined' - 2nd derivative is continuous at the ends ('cubic' only)
'notaknot' - The two end-segments are fused ('spline' only)
AKA 'nak' and 'not-a-knot'
The output is computed from the continuous function as follows:
'sample' - Value at the center of volume element (AKA 'dirac')
'average' - Average of volume element (default, AKA 'mean')
In most cases 'sample' requires additional filtering. The adjoint
can create holes and non-uniform artifacts, which is problematic in
linear equations. It may be useful for upsampling by an integer factor.
In contrast, 'average' acts as a continuous filter, which avoids these
problems. The default is particularly noteworthy as it satisfy:
bbrescale(DIM1,DIM2,'const','average')
= bbrescale(DIM2,DIM1,'const','average')'
Example: rescale the hypercube X with different methods.
DIM1=size(X); DIM2=ceil(dim1/pi);
Y1=reshape(bbrescale(DIM1,DIM2)*X(:),DIM2);
Y2=reshape(bbrescale(DIM1,DIM2,'linear','sample')*X(:),DIM2);
See also bbredim, bbindex, , , , .

bbrepmatbbship