Compute the Kronecker product of several matrices.

kprod(..., FUN = `*`)

Arguments

...

A listing of matrices

FUN

A function to pass to kronecker()

Value

A matrix that is the kronecker product of the specified matrices (from left to right).

Details

If kronecker is the function that computes A x B, kprod computes A x B x C and so on; it's a wrapper of Reduce and kronecker.

Examples

kprod(diag(2), t(ones(2)))
#> [,1] [,2] [,3] [,4] #> [1,] 1 1 0 0 #> [2,] 0 0 1 1
kprod(t(ones(2)), diag(2))
#> [,1] [,2] [,3] [,4] #> [1,] 1 0 1 0 #> [2,] 0 1 0 1
kprod(diag(2), t(ones(2)), t(ones(2)))
#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] #> [1,] 1 1 1 1 0 0 0 0 #> [2,] 0 0 0 0 1 1 1 1
kprod(t(ones(2)), diag(2), t(ones(2)))
#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] #> [1,] 1 1 0 0 1 1 0 0 #> [2,] 0 0 1 1 0 0 1 1
kprod(t(ones(2)), t(ones(2)), diag(2))
#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] #> [1,] 1 0 1 0 1 0 1 0 #> [2,] 0 1 0 1 0 1 0 1
# cf. aoki, hara, and takemura p.13 rbind( kprod(diag(2), t(ones(2))), kprod(t(ones(2)), diag(2)) )
#> [,1] [,2] [,3] [,4] #> [1,] 1 1 0 0 #> [2,] 0 0 1 1 #> [3,] 1 0 1 0 #> [4,] 0 1 0 1