# scipy.linalg.block_diag¶

scipy.linalg.block_diag(*arrs)

Create a block diagonal matrix from provided arrays.

Given the inputs A, B and C, the output will have these arrays arranged on the diagonal:

```[[A, 0, 0],
[0, B, 0],
[0, 0, C]]
```
Parameters : A, B, C, ... : array_like, up to 2-D Input arrays. A 1-D array or array_like sequence of length n`is treated as a 2-D array with shape ``(1,n)`. D : ndarray Array with A, B, C, ... on the diagonal. D has the same dtype as A.

Notes

If all the input arrays are square, the output is known as a block diagonal matrix.

Examples

```>>> A = [[1, 0],
...      [0, 1]]
>>> B = [[3, 4, 5],
...      [6, 7, 8]]
>>> C = [[7]]
>>> block_diag(A, B, C)
[[1 0 0 0 0 0]
[0 1 0 0 0 0]
[0 0 3 4 5 0]
[0 0 6 7 8 0]
[0 0 0 0 0 7]]
>>> block_diag(1.0, [2, 3], [[4, 5], [6, 7]])
array([[ 1.,  0.,  0.,  0.,  0.],
[ 0.,  2.,  3.,  0.,  0.],
[ 0.,  0.,  0.,  4.,  5.],
[ 0.,  0.,  0.,  6.,  7.]])
```

#### Previous topic

scipy.linalg.funm

#### Next topic

scipy.linalg.circulant