Kronecker tensor product
K = kron(
returns
the Kronecker
tensor product of matrices A,B
)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
.
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 = 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 = kron(A,B)
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
.
spy(A,'k')
A,B
— Input matricesInput 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
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
Usage notes and limitations:
Code generation does not support sparse matrix inputs for this function.
Usage notes and limitations:
Code generation does not support sparse matrix inputs for this function.
This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
You have a modified version of this example. Do you want to open this example with your edits?