分块对角矩阵,也称为对角分块矩阵,是一种 方 对角矩阵,其中对角元素是任意大小的方阵(甚至可能是 ),而非对角元素是 0。因此,分块对角矩阵是一种 分块矩阵,其中非对角线上的分块是 零矩阵,而对角矩阵是 方阵。
可以使用以下代码片段,在 Wolfram 语言 中用子矩阵构造分块对角矩阵
BlockDiagonalMatrix[b : {__?MatrixQ}] :=
Module[{r, c, n = Length[b], i, j},
{r, c} = Transpose[Dimensions /@ b];
ArrayFlatten[
Table[If[i == j,
b[[i]],
ConstantArray[0, {r[[i]], c[[j]]}]],
{i, n}, {j, n}
]
]
]