# kron .*.

Kronecker tensorial product. Weighted array replication

### Syntax

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

### Arguments

A, B

Arrays of size (a1, a2, ..) and (b1, b2, ..), with any number of dimensions. If `A` or `B` is sparse, the other one can't be an hypermatrix.

Supported encodings and types: boolean, integer, real, complex, polynomial, rational, sparse boolean, sparse real, sparse complex.

P

Array of `A` and `B` data type, and of size (a1*b1, a2*b2, ..). If `A` or `B` is sparse, `P` is sparse.

### Description

`kron(A,B)` or `A .*. B` returns the Kronecker tensor product of two matrices or hypermatrices`A` and `B`. The resulting matrix has the following block form:

If `A` is a `m x n` matrix and `B` a `p x q x r` hypermatrix then `A.*.B` is a `(m*p) x (n*q) x (1*r)` hypermatrix.

### Examples

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

With sparse matrices:

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

With complex numbers:

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

With hypermatrices:

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

// row .*. hypermat
a = 1:2, b
a.*.b

// hypermat .*. row
b,a
b .*. a

// column .*. hypermat
a = [1;2], b
a.*.b

// matrix .*. hypermat
a = [-1 -2; 2 1], b
a.*.b

// hypermat .*. hypermat
a = matrix([-1,-2, 1 2], [1 2 2]), b
a.*.b```