分块对角矩阵,也称为对角分块矩阵,是一种 方 对角矩阵,其中对角元素是任意大小的方阵(甚至可能是 ),而非对角元素是 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} ] ] ]