PLS_Toolbox Documentation: gscale | < gram | gscaler > |
gscale
Purpose
Group/block scaling for a single or multiple blocks.
Synopsis
[gxs,mxs,stdxs] = gscale(xin,numblocks)
Description
GSCALE scales an input matrix xin such that the columns have mean zero, and variance in each block/sub-matrix relative to the total variance in xin equal to one. The purpose is to provide equal sum-of-squares weighting to each block in xin.
Inputs are a matrix xin (class "double") and the number of sub-matrices or blocks numblocks. Note that size(xin,2)/numblocks must be an integer. If numblocks is not included, it is assumed to 1 i.e. the matrix xin is treated as a single block.
If (numblocks) is 0 (zero) then automatic mode is used based on the dimensions of the (xin) matrix:
If (xin) is a three-way array, it is unfolded (combining the first two modes as variables) and the size of the original second mode (size(xin,2)) is used as (numblocks). The output is re-folded back into the original three-way array.
Note that the unfold operation is: xin = unfoldmw(xin,3);
If (xin) is a two-way array, each variable is treated on its own and GSCALE is equivalent to autoscale (see the AUTO function).
Outputs are the scaled matrix (gxs), a rowvector of means (mxs), and a row vector of "block standard deviations" stdxs.
Examples
Scale a matrix a that has two blocks augmented together:
>> a = [[1 2 3; 4 5 6; 7 8 9] [11 12 13; 14 15 16; 17 18 19]]
a =
1 2 3 11 12 13
4 5 6 14 15 16
7 8 9 17 18 19
>> [gxs,mxs,stdxs] = gscale(a,2);
>> gxs
gxs =
-0.5774 -0.5774 -0.5774 -0.5774 -0.5774 -0.5774
0 0 0 0 0 0
0.5774 0.5774 0.5774 0.5774 0.5774 0.5774
>> mxs
mxs =
4 5 6 14 15 16
>> stdxs
stdxs =
3 3 3 3 3 3
See Also
auto, gscaler, mncn, scale, unfoldm
< gram | gscaler > |