二维数组上方的值

二维数组上方的值

我想将值放在数组上方(参见第一张图片上的红色圆圈)。 在此处输入图片描述

我制作了没有值的矩阵(见第二张图片)。 在此处输入图片描述

第二张图片的代码在这里

\begin{eqnarray}
\left(
\begin{array}{c}
y_{+1}\\
\vdots\\
y_{+m}\\
y_1\\
\vdots\\
y_N
\end{array}
\right)
\sim
\mathcal{N}\left(
\left(
\begin{array}{c}
0\\
\vdots\\
0\\
0\\
\vdots\\
0\end{array}
\right),
\begin{array}{c}
{\bf x}_{+1}\\
\vdots\\
{\bf x}_{+m}\\
{\bf x}_{1}\\
\vdots\\
{\bf x}_{N}
\end{array}
\left(
\begin{array}{ccc|ccc}
 & & & & & \\
 &K_{+m}& & &K_{N,m}& \\
 & & & & & \\
 \hline
 & & & & & \\
 &K_{N,m}^\mathsf{T}& & &K_{N}& \\
 & & & & & 
\end{array}
\right)
\right)
\end{eqnarray}

任何建议都是有帮助的。提前谢谢!

答案1

这是一个解决方案,nicematrix其优点是可以在不同的矩阵中实现完美的对齐(我们至少需要 2021-02-05 的 v. 5.10)。

\documentclass[11pt]{article}
\usepackage{nicematrix}

\begin{document}    
        
\begin{equation}
\begin{NiceArray}{ccccc@{\hspace*{7mm}}c|c}[first-row,baseline=line-4,cell-space-limits=5pt]
       &&        &&     & \mathbf{x}_1\cdots\mathbf{x}_N & \mathbf{x}_1^*\cdots\mathbf{x}_M^* \\
y_{+1} & \Block{6-1}{{}\sim\mathcal N\hspace*{1em}}& 0 &\Block{6-1}{,}& \mathbf{x}_{+1} & \Block{3-1}{K_{+m}} & \Block{3-1}{K_{N,m}} \\
\Vdots && \Vdots && \Vdots         & \hspace*{25mm} & \hspace*{25mm}\\
y_{+m} && 0      && \mathbf{x}_{+m} \\
\cline{6-7} 
y_1^*  && 0      && \mathbf{x}_1^* & \Block{3-1}{K_{N,m}^{\top}} & \Block{3-1}{K_N} \\
\Vdots && \Vdots && \Vdots         & \\
y_N^*  &\NotEmpty& 0       &\NotEmpty& \mathbf{x}_N^* & \\
\CodeAfter
\SubMatrix({1-1}{6-1})
\SubMatrix({1-3}{6-3})
\SubMatrix({1-6}{6-7})[left-xshift=3pt]
\SubMatrix({1-3}{6-7})[xshift=6pt,extra-height=6pt]
\end{NiceArray}
\end{equation}

\end{document}

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

上述代码的输出

答案2

可以通过tikz将顶行放在最后一个矩阵的顶部来回答这个问题。

我使用这个nicematrix包是因为通过在单元格及其角落中定义 Tikz 节点,这个包可以很好地与 tikz 集成。这样,代码就更简单、更紧凑了。

乙

我在所有四个数组中都使用了它,尽管实际上只有最后一个才是真正必要的。

\Block命令替换multicolumnmultirow,从而\Block{3-2}创建一个居中的 3x2 单元格。

该环境允许执行 tikz 代码,在本例中用于放置顶行并绘制(较粗的)线条。请注意\mathbf在数学模式下使用粗体。

\documentclass[11pt]{article}

\usepackage{nicematrix}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}    
        
\NiceMatrixOptions{cell-space-top-limit=5pt,cell-space-bottom-limit=5pt}    
    
\begin{eqnarray}
\begin{pNiceMatrix}
    y_{+1}\\
    \vdots\\
    y_{+m}\\
    y_1^\ast\\
    \vdots\\
    y_N^\ast
\end{pNiceMatrix}
\sim
\mathcal{N}
\left(
\begin{pNiceMatrix}[columns-width = 20pt]
    0\\
    \vdots\\
    0\\
    0\\
    \vdots\\
    0
\end{pNiceMatrix}
% \right)
 ,
\begin{NiceMatrix}[columns-width = 30pt]
    \mathbf{x}_{+1}\\
    \vdots\\
    \mathbf{x}_{+m}\\
    \mathbf{x}_{1}^{\ast}\\
    \vdots\\
    \mathbf{x}_{N}^{\ast}
\end{NiceMatrix}
\begin{pNiceArray}{cc  cc}[columns-width = 30pt,cell-space-top-limit=10pt,
                            cell-space-bottom-limit=10pt]
    \Block{3-2}{K_{+m}} &   & \Block{3-2}{K_{N,m}}  & \\
                                &   &                               & \\ 
                                &   &                               & \\ 
    \Block{3-2}{K_{N,m}^\mathsf{T}}&& \Block{3-2}{K_{N}}& \\
                                &   &                               & \\
                                &   &                               & \\
    \CodeAfter
    \tikz{%  put the top row and lines <<<<<<<<<<<<<<<<<<<<<<<<
    \node at (-3,2.5){\begin{tabular}{c} 
            $\mathbf{x}_{1} \cdots \mathbf{x}_{N}$  \hspace{25pt} $\mathbf{x}_{1}^\ast \cdots \mathbf{x}_{M}^\ast$ 
            \end{tabular}};
    \draw [thick]($(row-4-|col-1)!0.5!(row-4-|col-2)$) -- ($(row-4-|col-4)!0.5!(row-4-|col-5)$); 
    \draw [thick] ($(row-1-|col-3)!0.3!(row-2-|col-3)$) -- ($(row-6-|col-3)!0.7!(row-7-|col-3)$); 
    }
    \end{pNiceArray}
\right)
\end{eqnarray}
    
\end{document}

相关内容