Learn R Programming

fastmatrix (version 0.6)

kronecker.prod: Kronecker product on matrices

Description

Computes the kronecker product of two matrices, x and y.

Usage

kronecker.prod(x, y = x)

Value

An array with dimensions dim(x) * dim(y).

Arguments

x

a numeric matrix or vector.

y

a numeric matrix or vector.

Details

Let \(\bold{X}\) be an \(m\times n\) and \(\bold{Y}\) a \(p\times q\) matrix. The \(mp\times nq\) matrix defined by $$\left[{\begin{array}{ccc} x_{11}\bold{Y} & \dots & x_{1n}\bold{Y} \\ \vdots & & \vdots \\ x_{m1}\bold{Y} & \dots & x_{mn}\bold{Y} \end{array}}\right],$$ is called the Kronecker product of \(\bold{X}\) and \(\bold{Y}\).

References

Magnus, J.R., Neudecker, H. (2007). Matrix Differential Calculus with Applications in Statistics and Econometrics, 3rd Edition. Wiley, New York.

See Also

kronecker function from base package is based on outer. Our C version is slightly faster.

Examples

Run this code
# block diagonal matrix:
a <- diag(1:3)
b <- matrix(1:4, ncol = 2)
kronecker.prod(a, b)

# examples with vectors
ones <- rep(1, 4)
y <- 1:3
kronecker.prod(ones, y) # 12-dimensional vector
kronecker.prod(ones, t(y)) # 3 x 3 matrix

Run the code above in your browser using DataLab