如何将两个矩阵叠加在一起?

如何将两个矩阵叠加在一起?

此代码

\begin{bmatrix} 
        a_{11} & a_{12} & a_{13} & a_{14} \\
        a_{21} & a_{22} & a_{23} & a_{24} \\
        a_{31} & a_{32} & a_{33} & a_{34} 
    \end{bmatrix}
    \begin{bmatrix}
        5 & 6 & 7 & 8 \\
        4 & 3 & 2 & 1 \\
        6 & 7 & 8 & 9 
    
    \end{bmatrix}

生成两个并排的矩阵。如何让它们相互叠加?

答案1

我建议您将两个bmatrix环境都放在一个gather*环境中。

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath} % for 'bmatrix' and 'gather*' environments

\begin{document}
\begin{gather*}
\begin{bmatrix} 
        a_{11} & a_{12} & a_{13} & a_{14} \\
        a_{21} & a_{22} & a_{23} & a_{24} \\
        a_{31} & a_{32} & a_{33} & a_{34} 
\end{bmatrix} \\ % <-- force a line break
\begin{bmatrix}
        5 & 6 & 7 & 8 \\
        4 & 3 & 2 & 1 \\
        6 & 7 & 8 & 9  
\end{bmatrix}
\end{gather*}
\end{document}

答案2

这里有一些选项;原则上,将两个矩阵包装在里面,array并使用常规换行符将它们分开\\

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath,eqparbox}

% https://tex.stackexchange.com/a/34412/5764
\makeatletter
\NewDocumentCommand{\eqmathbox}{o O{c} m}{%
  \IfValueTF{#1}
    {\def\eqmathbox@##1##2{\eqmakebox[#1][#2]{$##1##2$}}}
    {\def\eqmathbox@##1##2{\eqmakebox{$##1##2$}}}
  \mathpalette\eqmathbox@{#3}
}
\makeatother

\begin{document}

\[
  \begin{bmatrix} 
    a_{11} & a_{12} & a_{13} & a_{14} \\
    a_{21} & a_{22} & a_{23} & a_{24} \\
    a_{31} & a_{32} & a_{33} & a_{34} 
  \end{bmatrix}
  \begin{bmatrix}
    5 & 6 & 7 & 8 \\
    4 & 3 & 2 & 1 \\
    6 & 7 & 8 & 9 
  \end{bmatrix}
\]

\[
  \begin{array}{@{} c @{}}
    \begin{bmatrix} 
      a_{11} & a_{12} & a_{13} & a_{14} \\
      a_{21} & a_{22} & a_{23} & a_{24} \\
      a_{31} & a_{32} & a_{33} & a_{34} 
    \end{bmatrix} \\
    \begin{bmatrix}
      5 & 6 & 7 & 8 \\
      4 & 3 & 2 & 1 \\
      6 & 7 & 8 & 9 
    \end{bmatrix}
  \end{array} \qquad
  \begin{array}{@{} c @{}}
    \begin{bmatrix} 
      \eqmathbox[aa]{a_{11}} & \eqmathbox[aa]{a_{12}} & \eqmathbox[aa]{a_{13}} & \eqmathbox[aa]{a_{14}} \\
      a_{21} & a_{22} & a_{23} & a_{24} \\
      a_{31} & a_{32} & a_{33} & a_{34} 
    \end{bmatrix} \\
    \\[\dimexpr-\normalbaselineskip+\jot]
    \begin{bmatrix}
      \eqmathbox[aa]{5} & \eqmathbox[aa]{6} & \eqmathbox[aa]{7} & \eqmathbox[aa]{8} \\
      4 & 3 & 2 & 1 \\
      6 & 7 & 8 & 9 
    \end{bmatrix}
  \end{array}
\]

\end{document}

添加eqparbox(和\eqmathbox)取决于您是否希望条目在 -es 之间对齐bmatrix。您还可以考虑blkarray

答案3

也许 OP 希望第一个矩阵的列与第二个矩阵的列对齐。使用 是可能{NiceMatrix}nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\[\begin{NiceMatrix} 
   a_{11} & a_{12} & a_{13} & a_{14} \\
   a_{21} & a_{22} & a_{23} & a_{24} \\
   a_{31} & a_{32} & a_{33} & a_{34} \\[1mm]
   5 & 6 & 7 & 8 \\
   4 & 3 & 2 & 1 \\
   6 & 7 & 8 & 9  
\CodeAfter
  \SubMatrix[{1-1}{3-4}]
  \SubMatrix[{4-1}{6-4}]
\end{NiceMatrix}\]

\end{document}

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

上述代码的输出

相关内容