Multiplying specific submatrices of a spam matrix with different factors.

gmult(x, splits, fact)

Arguments

x

a spam matrix.

splits

vector of how to split the matrix into submatrices. It starts with 1 and ends with max(dim(X))+1.

fact

matrix of factors to multiply submatrices defined by splits. Dimensions of fact must correspond to the length(splits)-1.

Value

Spam matrix, where each specified submatrix is multiplied with a factor.

Author

Florian Gerber, Roman Flury

Examples

x <- spam(1, 15, 15)
print(x, minimal = FALSE)
#> Matrix of dimension 15x15 with (row-wise) nonzero elements:
#>       1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 
#>     ---------------------------------------------
#>   1| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>   2| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>   3| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>   4| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>   5| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>   6| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>   7| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>   8| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>   9| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>  10| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>  11| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>  12| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>  13| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>  14| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#>  15| 
#> Warning: one argument not used by format '%2.0f'
#>  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
#> class: spam (32-bit)
#> Class 'spam' (32-bit)

splits <- c(1,2,8,ncol(x)+1) # divide matrix into 9 submatrices
fact <- array(1:9, c(3,3))   # multiply each submatrix with a different factor
oF <- gmult(x, splits, fact)
print(oF, minimal = FALSE)
#> Matrix of dimension 15x15 with (row-wise) nonzero elements:
#>       1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 
#>     ---------------------------------------------
#>   1| 
#> Warning: one argument not used by format '%2.0f'
#>  1  4  4  4  4  4  4  7  7  7  7  7  7  7  7 
#>   2| 
#> Warning: one argument not used by format '%2.0f'
#>  2  5  5  5  5  5  5  8  8  8  8  8  8  8  8 
#>   3| 
#> Warning: one argument not used by format '%2.0f'
#>  2  5  5  5  5  5  5  8  8  8  8  8  8  8  8 
#>   4| 
#> Warning: one argument not used by format '%2.0f'
#>  2  5  5  5  5  5  5  8  8  8  8  8  8  8  8 
#>   5| 
#> Warning: one argument not used by format '%2.0f'
#>  2  5  5  5  5  5  5  8  8  8  8  8  8  8  8 
#>   6| 
#> Warning: one argument not used by format '%2.0f'
#>  2  5  5  5  5  5  5  8  8  8  8  8  8  8  8 
#>   7| 
#> Warning: one argument not used by format '%2.0f'
#>  2  5  5  5  5  5  5  8  8  8  8  8  8  8  8 
#>   8| 
#> Warning: one argument not used by format '%2.0f'
#>  3  6  6  6  6  6  6  9  9  9  9  9  9  9  9 
#>   9| 
#> Warning: one argument not used by format '%2.0f'
#>  3  6  6  6  6  6  6  9  9  9  9  9  9  9  9 
#>  10| 
#> Warning: one argument not used by format '%2.0f'
#>  3  6  6  6  6  6  6  9  9  9  9  9  9  9  9 
#>  11| 
#> Warning: one argument not used by format '%2.0f'
#>  3  6  6  6  6  6  6  9  9  9  9  9  9  9  9 
#>  12| 
#> Warning: one argument not used by format '%2.0f'
#>  3  6  6  6  6  6  6  9  9  9  9  9  9  9  9 
#>  13| 
#> Warning: one argument not used by format '%2.0f'
#>  3  6  6  6  6  6  6  9  9  9  9  9  9  9  9 
#>  14| 
#> Warning: one argument not used by format '%2.0f'
#>  3  6  6  6  6  6  6  9  9  9  9  9  9  9  9 
#>  15| 
#> Warning: one argument not used by format '%2.0f'
#>  3  6  6  6  6  6  6  9  9  9  9  9  9  9  9 
#> class: spam (32-bit)
#> Class 'spam' (32-bit)