Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

kron

Kronecker tensor product

Syntax

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

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 = 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.

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.

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')

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

Kronecker Tensor Product

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

AB=[a11Ba12Ba1nBa21Ba22Ba2nBam1Bam2BamnB].

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

A=[1210],B=[4323]AB=[1·41·32·42·31·21·32·22·31·41·30·40·31·21·30·20·3]=[4386234643002300].

See Also

| | |

Introduced before R2006a

Was this topic helpful?