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
.
Examples
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
.
Input Arguments
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
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
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