kronecker                package:base                R Documentation

Kronecker products on arrays

Description:

     Computes the generalised kronecker product of two arrays, 'X' and
     'Y'.  'kronecker(X, Y)' returns an array 'A' with dimensions
     'dim(X) * dim(Y)'.

Usage:

     kronecker(X, Y, FUN = "*", make.dimnames = FALSE, ...)
     X %x% Y

Arguments:

       X: A vector or array.

       Y: A vector or array.

     FUN: a function; it may be a quoted string.

make.dimnames: Provide dimnames that are the product of the dimnames of
          'X' and 'Y'.

     ...: optional arguments to be passed to 'FUN'.

Details:

     If 'X' and 'Y' do not have the same number of dimensions, the
     smaller array is padded with dimensions of size one.  The returned
     array comprises submatrices constructed by taking 'X' one term at
     a time and expanding that term as 'FUN(x, Y, ...)'.

     '%x%' is an alias for 'kronecker' (where 'FUN' is hardwired to
     '"*"').

Author(s):

     Jonathan Rougier, J.C.Rougier@durham.ac.uk

References:

     Shayle R. Searle (1982) _Matrix Algebra Useful for Statistics._
     John Wiley and Sons.

See Also:

     'outer', on which 'kronecker' is built and '%*%' for usual matrix
     multiplication.

Examples:

     # simple scalar multiplication
     ( M <- matrix(1:6, ncol=2) )
     kronecker(4, M)
     # Block diagonal matrix:
     kronecker(diag(1, 3), M)

     # ask for dimnames

     fred <- matrix(1:12, 3, 4, dimnames=list(LETTERS[1:3], LETTERS[4:7]))
     bill <- c("happy" = 100, "sad" = 1000)
     kronecker(fred, bill, make.dimnames = TRUE)

     bill <- outer(bill, c("cat"=3, "dog"=4))
     kronecker(fred, bill, make.dimnames = TRUE)

