SciPy

scipy.sparse.block_diag

scipy.sparse.block_diag(mats, format=None, dtype=None)[source]

Build a block diagonal sparse matrix from provided matrices.

Parameters:
mats : sequence of matrices

Input matrices.

format : str, optional

The sparse format of the result (e.g. “csr”). If not given, the matrix is returned in “coo” format.

dtype : dtype specifier, optional

The data-type of the output matrix. If not given, the dtype is determined from that of blocks.

Returns:
res : sparse matrix

See also

bmat, diags

Notes

New in version 0.11.0.

Examples

>>> from scipy.sparse import coo_matrix, block_diag
>>> A = coo_matrix([[1, 2], [3, 4]])
>>> B = coo_matrix([[5], [6]])
>>> C = coo_matrix([[7]])
>>> block_diag((A, B, C)).toarray()
array([[1, 2, 0, 0],
       [3, 4, 0, 0],
       [0, 0, 5, 0],
       [0, 0, 6, 0],
       [0, 0, 0, 7]])

Previous topic

scipy.sparse.spdiags

Next topic

scipy.sparse.tril