### Navigation

- index
- modules |
- modules |
- next |
- previous |
- SciPy v0.9 Reference Guide (DRAFT) »
- Linear algebra (`scipy.linalg`) »

# 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)`.
  Returns : | 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.]])

### Navigation

- index
- modules |
- modules |
- next |
- previous |
- SciPy v0.9 Reference Guide (DRAFT) »
- Linear algebra (`scipy.linalg`) »