mindspore.scipy.linalg.block_diag
- mindspore.scipy.linalg.block_diag(*arrs)[源代码]
根据输入的数组创建块对角矩阵。
输入为:A、B 和 C 的Tensor列表。输出为:在对角线上排列这些Tensor的块对角矩阵。
[[A, 0, 0], [0, B, 0], [0, 0, C]]
说明
Windows平台上还不支持 block_diag。
- 参数:
arrs (list) - 最大支持2D的Tensor输入。 一个或多个Tensor,维度支持0D,1D、2D。
- 返回:
对角线上含有 A、B、C,…的Tensor,数据类型与 A 相同。
- 异常:
ValueError - 输入参数中存在维度大于2的Tensor。
- 支持平台:
GPU
CPU
样例:
>>> import numpy as onp >>> from mindspore import Tensor >>> from mindspore.scipy.linalg import block_diag >>> A = Tensor(onp.array([[1, 0], [0, 1]])) >>> B = Tensor(onp.array([[3, 4, 5], [6, 7, 8]])) >>> C = Tensor(onp.array([[7]])) >>> P = Tensor(onp.zeros((2, ), dtype='int32')) >>> print(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]] >>> print(block_diag(A, P, B, C)) [[1 0 0 0 0 0 0 0] [0 1 0 0 0 0 0 0] [0 0 0 0 0 0 0 0] [0 0 0 0 3 4 5 0] [0 0 0 0 6 7 8 0] [0 0 0 0 0 0 0 7]]