LaTeX 中的子矩阵

LaTeX 中的子矩阵

我想创建类似这样的东西:

       i
 (           )
 (           )
 (______     )
j(      |    )
 (      |    )

可以使用以下方法创建矩阵及其子矩阵multicolumn

\[
\left(
\begin{array}{p{3mm}p{3mm}p{3mm}p{3mm}p{3mm}}
    &&&&\\
    &&&&\\
    \cline{1-3}
    &&\multicolumn{1}{c|}{}&&\\
    &&\multicolumn{1}{c|}{}&&\\
    &&\multicolumn{1}{c|}{}&&\\
    &&\multicolumn{1}{c|}{}&&
\end{array}
\right)
\]

但这不适用于bordermatrix

答案1

创建边界矩阵的一个灵活方法是黑白阵列包。它允许将分隔符定位在具有{block}环境的某些行上的任意位置。以下是与 Herbert 的回答中相同的示例:

替代文本

\documentclass{article}

\usepackage{blkarray}

\begin{document}

\[
  \begin{blockarray}{cccccc}
     &   &   & i &   &   \\
  \begin{block}{c\Left{}{(\mkern1mu}ccccc<{\mkern1mu})}
     & 0 & a & b & c & d \\
     & 0 & A & B & C & D \\
  \cline{2-4}
  \begin{block*}{c(ccc|cc)}
   j & s & t & u & v & w \\
     & t &   & v &   &   \\
     & u &   & w &   &   \\
     & V & W & z & Y & Z \\
  \end{block*}
  \end{block}
  \end{blockarray}
\]

\end{document}

为了避免\cline超出左括号,我不得不使用\Left{}{(\mkern1mu}而不是(作为左分隔符,并且为了对称,我在右边添加了<{\mkern1mu}

答案2

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\def\mc#1{\multicolumn{1}{c|}{#1}}

\[
\begin{array}{cc}
     &  i \\
\put(0,-10){\makebox(0,0){j}} &
\left(
\begin{array}{p{3mm}p{3mm}p{3mm}p{3mm}p{3mm}}
    0&a&b&c&d\\
    0&A&B&C&D\\\cline{1-3}
    s&t&\mc{u}&v&w\\
    t&&\mc{v}&&\\
    u&&\mc{w}&&\\
    V&W&\mc{x}&Y&Z
\end{array}
\right)

\end{array}
\]

\end{document} 

替代文本

答案3

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

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\[
\begin{pNiceMatrix}[first-col,first-row,margin=1pt]
&   &   & i \\
\Block{6-1}{j}
& 0 & a & b & c & d \\
& 0 & A & B & C & D \\
& \Block[borders={top,right}]{4-3}{}
  s & t & u & v & w \\
& t &   & v \\
& u &   & w \\
& V & W & x & Y & Z  
\end{pNiceMatrix}
\]

\end{document} 

上述代码的输出

如果您不想要主数组内的指令,您也可以使用所谓的 TikZ 指令来绘制规则\CodeAfter

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

\begin{document}

\[
\begin{pNiceMatrix}[first-col,first-row,margin=1pt]
   &   &   & i \\
   \Block{6-1}{j}
   & 0 & a & b & c & d \\
   & 0 & A & B & C & D \\
   &   s & t & u & v & w \\
   & t &   & v \\
   & u &   & w \\
   & V & W & x & Y & Z  
\CodeAfter
   \tikz \draw (3-|1) -| (last-|4) ; 
\end{pNiceMatrix}
\]

\end{document} 

输出是一样的。

答案4

这是一个想法的骨架,无需猜测 put 命令的位置...但我不确定您想用这些线做什么....我以为您可以使用 addpath(easymat 命令)添加它们,但我遇到了麻烦...无论如何,我会把答案放在这里,看看它是否有帮助......

\documentclass{minimal}

\usepackage{easybmat}

\begin{document}
\begin{equation}
  \begin{BMAT}{cc}{cc}
&
\begin{BMAT}(b){ccccc}{c}
 1&2&3&4&5
\end{BMAT}
\\
\begin{BMAT}(b){c}{ccccc}
1\\2\\3\\4\\5\\  
\end{BMAT}
&
\left[\begin{BMAT}(b){ccccc}{ccccc}
  1&2&3&4&5\\  1&2&3&4&5\\  1&2&3&4&5\\  1&2&3&4&5\\  1&2&3&4&5
\end{BMAT}\right]
 \end{BMAT}
\end{equation}
\end{document}][1]

这使: 替代文本

相关内容