kron - Kronecker tensor product - MATLAB (original) (raw)

Syntax

Description

K = kron([A,B](#bt0autl-1-AB)) returns the Kronecker tensor product of matrices A and B. If A is an m-by-n matrix and B is a p-by-q matrix, thenkron(A,B) is anm*p-by-n*q matrix formed by taking all possible products between the elements of A and the matrixB.

example

Examples

collapse all

Create a block diagonal matrix.

Create a 4-by-4 identity matrix and a 2-by-2 matrix that you want to be repeated along the diagonal.

A = eye(4); B = [1 -1;-1 1];

Use kron to find the Kronecker tensor product.

K = 8×8

 1    -1     0     0     0     0     0     0
-1     1     0     0     0     0     0     0
 0     0     1    -1     0     0     0     0
 0     0    -1     1     0     0     0     0
 0     0     0     0     1    -1     0     0
 0     0     0     0    -1     1     0     0
 0     0     0     0     0     0     1    -1
 0     0     0     0     0     0    -1     1

The result is an 8-by-8 block diagonal matrix.

Expand the size of a matrix by repeating elements.

Create a 2-by-2 matrix of ones and a 2-by-3 matrix whose elements you want to repeat.

A = [1 2 3; 4 5 6]; B = ones(2);

Calculate the Kronecker tensor product using kron.

K = 4×6

 1     1     2     2     3     3
 1     1     2     2     3     3
 4     4     5     5     6     6
 4     4     5     5     6     6

The result is a 4-by-6 block matrix.

This example visualizes a sparse Laplacian operator matrix.

The matrix representation of the discrete Laplacian operator on a two-dimensional, n-by- n grid is a n*n-by- n*n sparse matrix. There are at most five nonzero elements in each row or column. You can generate the matrix as the Kronecker product of one-dimensional difference operators. In this example n = 5.

n = 5; I = speye(n,n); E = sparse(2:n,1:n-1,1,n,n); D = E+E'-2*I; A = kron(D,I)+kron(I,D);

Visualize the sparsity pattern with spy.

Figure contains an axes object. The axes object with xlabel nz = 105 contains a line object which displays its values using only markers.

Input Arguments

collapse all

Input matrices, specified as scalars, vectors, or matrices. If either A or B is sparse, then kron multiplies only nonzero elements and the result is also sparse.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Complex Number Support: Yes

More About

collapse all

If A is an m-by-n matrix and B is a p-by-q matrix, then the Kronecker tensor product of A and B is a large matrix formed by multiplying B by each element of A

For example, two simple 2-by-2 matrices produce

Extended Capabilities

expand all

The kron function fully supports GPU arrays. To run the function on a GPU, specify the input data as a gpuArray (Parallel Computing Toolbox). For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

Version History

Introduced before R2006a