使用 LaTeX 的分块矩阵

使用 LaTeX 的分块矩阵

有人知道我该如何使用 LaTeX 代码编写这个块矩阵吗?目前,这是我在 Photoshop 上制作的图形...我希望它是一个方程,以便具有更好的分辨率。

在此处输入图片描述

答案1

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}

\newcommand{\mymatrix}{
    \left(\begin{gathered}
    \tikzpicture[every node/.style={anchor=south west}]
        \node[minimum width=2cm,minimum height=.6cm] at (0,0) {$C_2$};
        \node[minimum width=2cm,minimum height=.6cm] at (0,.6) {$B_2$};
        \node[minimum width=4cm,minimum height=1.2cm] at (2,0) {$M_{3,7}^{[1,2]}$};
        \node[minimum width=1.5cm,minimum height=1.2cm] at (0,1.2) {$A_4$};
        \node[minimum width=4.5cm,minimum height=1.2cm] at (1.5,1.2) {$M_{3,7}^{[1]}$};
        \draw[dashed] (0,1.2) -- (6,1.2);
        \draw[dashed] (0,0.6) -- (2,0.6);
        \draw[dashed] (2,0) -- (2,1.2);
        \draw[dashed] (1.5,1.2) -- (1.5,2.4);
    \endtikzpicture
    \end{gathered}\right)
}

\begin{document}
    \[ M_{3,9} = \mymatrix \]
\end{document}

在此处输入图片描述

答案2

这是一个{pNiceArray}使用 的解决方案nicematrix

\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}

\begin{document}

\NiceMatrixOptions
  {
    custom-line = 
     {
       letter = : , 
       command = hdashedline , 
       tikz = dashed , 
     }
  }

\renewcommand{\arraystretch}{1.3}

$M_{3,9} = \begin{pNiceArray}{ccc:c:ccccc}[columns-width = 3mm]
\Block{3-3}{A_4} & & & \Block{3-5}{M_{3,7}^{[1]}} & & & & \\
\\
\\
\hdashedline
\Block{1-4}{B_2} & & & & \Block{2-4}{M_{3,7}^{[1,2]}} \\
\hdashedline
\Block{1-4}{C_2} \\
\end{pNiceArray}$

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容