kronecker                package:base                R Documentation

_K_r_o_n_e_c_k_e_r _p_r_o_d_u_c_t_s _o_n _a_r_r_a_y_s

_D_e_s_c_r_i_p_t_i_o_n:

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

_U_s_a_g_e:

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

_A_r_g_u_m_e_n_t_s:

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

_D_e_t_a_i_l_s:

     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
     `"*"').

_A_u_t_h_o_r(_s):

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

_R_e_f_e_r_e_n_c_e_s:

     Matrix Algebra Useful for Statistics, Shayle R. Searle, John Wiley
     and Sons, 1982.

_S_e_e _A_l_s_o:

     `outer', on which `kronecker' is built and `matmult' for usual
     matrix multiplication.

_E_x_a_m_p_l_e_s:

     # simple scalar multiplication
     ( M <- matrix(1:6, ncol=2) )
     stopifnot(kronecker(4, M)==4 * M)
     # Block diagonal matrix:
     stopifnot(kronecker(diag(1, 3), M) == diag(1, 3) %x% 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)

