kron
Producto tensorial de Kronecker
Sintaxis
Descripción
K = kron(
devuelve el producto tensorial de Kronecker de las matrices A,B
)A
y B
. Si A
es una matriz de m
por n
y B
es una matriz de p
por q
, entonces kron(A,B)
es una matriz de m*p
por n*q
formada tomando todos los productos posibles entre los elementos de A
y la matriz B
.
Ejemplos
Cree una matriz diagonal por bloques.
Cree una matriz identidad de 4 por 4 y una matriz de 2 por 2 que desee que se repita a lo largo de la diagonal.
A = eye(4); B = [1 -1;-1 1];
Utilice kron
para encontrar el producto tensorial de Kronecker.
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
El resultado es una matriz diagonal por bloques de 8 por 8.
Expanda el tamaño de una matriz repitiendo elementos.
Cree una matriz de 2 por 2 de unos y una matriz de 2 por 3 cuyos elementos desee repetir.
A = [1 2 3; 4 5 6]; B = ones(2);
Calcule el producto tensorial de Kronecker utilizando 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
El resultado es una matriz por bloques de 4 por 6.
Este ejemplo mestra una matriz laplaciana dispersa.
La representación de matriz del operador laplaciano discreto en una cuadrícula bidimensional n
por n
es una matriz dispersa n*n
por n*n
. Hay un máximo de cinco elementos distintos de cero en cada fila o columna. Puede generar la matriz como un producto de Kronecker de operadores de diferencia unidimensional. En este ejemplo 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);
Visualice el patrón de dispersión con spy
.
spy(A,'k')
Argumentos de entrada
Matrices de entrada, especificadas como escalares, vectores o matrices. Si A
o B
es dispersa, entonces kron
multiplica solo elementos distintos de cero y el resultado también es disperso.
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
Soporte de números complejos: Sí
Más acerca de
Si A
es una matriz m
por n
y B
es una matriz p
por q
, entonces el producto tensorial de Kronecker de A
y B
es una gran matriz que se forma multiplicando B
por cada elemento de A
.
Por ejemplo, dos matrices de 2 por 2 producen
Capacidades ampliadas
Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.
Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.
Esta función es totalmente compatible con entornos basados en subprocesos. Para obtener más información, consulte Ejecutar funciones de MATLAB en entornos basados en subprocesos.
La función kron
es totalmente compatible con los arreglos de GPU. Para ejecutar la función en una GPU, especifique los datos de entrada como un gpuArray
(Parallel Computing Toolbox). Para obtener más información, consulte Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Esta función es totalmente compatible con los arreglos distribuidos. Para obtener más información, consulte Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Historial de versiones
Introducido antes de R2006a
Consulte también
tensorprod
| hankel
| toeplitz
| dot
| cross
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)