Accelerating the pace of engineering and science

Documentation Center

• Trial Software

kron

Kronecker tensor product

Description

example

K = kron(A,B) 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, then kron(A,B) is an m*p-by-n*q matrix formed by taking all possible products between the elements of A and the matrix B.

Examples

expand all

Block Diagonal Matrix

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 = kron(A,B)`
```K =

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.

Repeat Matrix Elements

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 = kron(A,B)`
```K =

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.

Sparse Laplacian Operator Matrix

Visualize a sparse Laplacian operator matrix.

The matrix representation of the discrete Laplacian operator on a two-dimensional, n-by-n grid is a n^2-by-n^2 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.

`spy(A,'k')`

Input Arguments

expand all

A,B — Input matricesscalars | vectors | matrices

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