kron

Тензор Кронекера продукт

Синтаксис

Описание

пример

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-by- n сетка является n*n-by- 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')

Figure contains an axes. The axes contains an object of type line.

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

свернуть все

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

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

Подробнее о

свернуть все

Тензор Кронекера

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

AB=[a11Ba12Ba1nBa21Ba22Ba2nBam1Bam2BamnB].

Для примера две простые матрицы 2 на 2 производят

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

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

..

См. также

| | |

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