创建一个逐块矩阵,指示每个块的行数/列数

创建一个逐块矩阵,指示每个块的行数/列数

图像有时比文字更有效,所以我想创建一个这样的矩阵:

在此处输入图片描述

我的主要问题是使用括号来表示行列数,如下所示。事实上,我当前的代码如下,没有这些括号:

\begin{equation}
\left[
\begin{array}{ccc|ccc}
I & A_1 & A_2 & B & C_1 & C_2 \\
0 & 0 & 0 & D_1 & I & E_2 \\
0 & 0 & 0 & D_2 & 0 & 0 \\
\end{array}
\right]
\end{equation}

如何获得与图像相同的渲染效果?

答案1

blkarray以下是使用和bigdelim少量 来实现的方法mathtools

\documentclass{article}
\usepackage{mathtools}
\usepackage{blkarray, bigstrut, bigdelim}

\begin{document}

\begin{equation}
\setlength{\bigstrutjot}{1ex}
\begin{blockarray}{rccc|ccc}
\begin{block}{rcccccc}
 & \overbrace{}^{r}& \overbrace{}^{\mathclap{n-k-r-s}} & \overbrace{}^{r + s} &
 \overbrace{}^{r} & \overbrace{}^{\mathclap{n-k-r-s}} & \overbrace{ }^{r + s} \\[-1.5ex]
\end{block}
\begin{block}{r[ccc|ccc]}
\ldelim\{{1}{2mm}[$\scriptstyle r $] & I & A_1 & A_2 & B & C_1 & C_2 \bigstrut\\[0.5ex]
\ldelim\{{1}{2mm}[$\scriptstyle\mathllap{n-k-r -}s$] & 0 & 0 & 0 & D_1 & I & E_2\\[0.5ex]
\ldelim\{{1}{2mm}[$\scriptstyle s$] & 0 & 0 & 0 & D_2 & 0 & 0 \bigstrut[b] \\
\end{blockarray}
\end{equation}

\end{document} 

在此处输入图片描述

相关内容