Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Основные функции > Матричные операции > kron .*.

kron .*.

произведение Кронекера. Взвешенное повторение массива

Синтаксис

P = kron(A, B)
P = A .*. B

Arguments

A, B

Массивы размером (a1, a2, ..) и (b1, b2, ..) с любым числом размерности. Если A или B являются разрежёнными, то другоо массив не может быть гиперматрицей.

Поддерживаемые кодируемые целые и типы: integer, real, complex, polynomial, rational, sparse.

P

Массив с типом данных A и B, и размером (a1*b1, a2*b2, ..). Если A или B разрежённый массив, то P будет разрежённым.

Описание

kron(A,B) или A.*.B возвращает результат Кронекеровского тензорного произведения двух матриц или гиперматрицам A и B. Матрица результата имеет следующую блочную форму:

           [ A(1,1).B  ..  A(1,n).B ] \n A .✶. B = |   ⋮        ⋮     ⋮      | \n           [ A(m,1).B  ..  A(m,n).B ]

Если матрица A имеет размер m x n, а матрица B имеет размер p x q x r, то результат A .*. B является матрицей размером (m*p) x (n*q) x (1xr).

Примеры

A = [1 3 ; 2 4]
B = [1 10 100]
kron(A, B)
A .*. B
B .*. A
--> A = [1 3 ; 2 4]
 A  =
   1.   3.
   2.   4.

--> B = [1 10 100]
 B  =
   1.   10.   100.

--> kron(A, B)
 ans  =
   1.   10.   100.   3.   30.   300.
   2.   20.   200.   4.   40.   400.

--> A .*. B
 ans  =
   1.   10.   100.   3.   30.   300.
   2.   20.   200.   4.   40.   400.

--> B .*. A
 ans  =
   1.   3.   10.   30.   100.   300.
   2.   4.   20.   40.   200.   400.

С разрежёнными матрицами:

P = [-1 0 1 10] .*. sparse([0 1 2])
full(P)
--> P = [-1 0 1 10] .*. sparse([0 1 2])
 P  =
(  1,  12) sparse matrix
(  1,  2)    -1.
(  1,  3)    -2.
(  1,  8)     1.
(  1,  9)     2.
(  1,  11)    10.
(  1,  12)    20.

--> full(P)
 ans  =
   0.  -1.  -2.   0.   0.   0.   0.   1.   2.   0.   10.   20.

С комплексными числами:

A = [-1 1 ; -%i %i]
A .*. A
--> A = [-1 1 ; -%i %i]
 A  =
  -1.     1.
  -i      i

--> A .*. A
 ans  =
   1.    -1.    -1.     1.
   i     -i     -i      i
   i     -i     -i      i
  -1.     1.     1.    -1.

С гиперматрицами:

b = matrix(1:24, [4 3 2]);

// строка .*. гиперматрица
a = 1:2, b
a.*.b

// гиперматрица .*. строка
b,a
b .*. a

// столбец .*. гиперматрица
a = [1;2], b
a.*.b

// матрица .*. гиперматрица
a = [-1 -2; 2 1], b
a.*.b

// гиперматрица .*. гиперматрица
a = matrix([-1,-2, 1 2], [1 2 2]), b
a.*.b

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

  • kron .\. ./. — Kronecker left and right divisions
  • star — (*) оператор умножения
  • prod — произведение элементов массива
  • cumprod — произведение элементов массива с накоплением
  • repmat — Дублирование массива и его мозаичное размещение

История

VersionDescription
5.5.1

Расширение до гиперматриц

Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 25 08:54:54 CET 2020