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, , , , .