kron

Продукт тензора Кронекера

Синтаксис

K = kron(A,B)

Описание

пример

K = kron(A,B) возвращает продукт тензора Кронекера матриц A и B. Если A является m-by-n матрица, и B является p-by-q матрица, то kron(A,B) является m*p-by-n*q матрица, сформированная путем взятия всех возможных продуктов между элементами A и матричного B.

Примеры

свернуть все

Создайте блочную матрицу диагонали.

Создайте единичную матрицу 4 на 4 и матрицу 2 на 2, что вы хотите быть повторенными по диагонали.

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

Используйте kron, чтобы найти продукт тензора Кронекера.

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

Результат 8 8 блочная матрица диагонали.

Расширьте размер матрицы путем повторения элементов.

Создайте матрицу 2 на 2 из единиц и 2 3 матрица, элементы которой вы хотите повторить.

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

Вычислите продукт тензора Кронекера с помощью 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

Результатом является 4 6 блочная матрица.

Этот пример визуализирует разреженную Лапласовую матрицу оператора.

Матричным представлением дискретного Лапласового оператора на двумерном, n n сеткой является n*n n*n разреженной матрицей. Существует самое большее пять ненулевых элементов в каждой строке или столбце. Можно сгенерировать матрицу как Кронекеров продукт одномерных операторов различия. В этом примере 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);

Визуализируйте шаблон разреженности с spy.

spy(A,'k')

Входные параметры

свернуть все

Введите матрицы, заданные как скаляры, векторы или матрицы. Если или A или B разреженны, то kron умножает только ненулевые элементы, и результат также разрежен.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический
Поддержка комплексного числа: Да

Больше о

свернуть все

Продукт тензора Кронекера

Если A является m-by-n матрица, и B является p-by-q матрица, то продуктом тензора Кронекера A и B является большая матрица, сформированная путем умножения B каждым элементом A

A⊗B = [a11Ba12Ba1nBa21Ba22B  a2nBam1Bam2BamnB].

Например, две простых матрицы 2 на 2 производят

A = [1−2−10],     B=[4−323]A⊗B=[1 · 41 · −3−2 · 4−2 · −31 · 21 · 3−2 · 2−2 · 3−1 · 4−1 · −30 · 40 · −3−1 · 2−1 · 30 · 20 · 3]=[4−3−8623−4−6−4300−2−300].

Расширенные возможности

Смотрите также

| | |

Представлено до R2006a

Была ли эта тема полезной?