第二张图片的代码在这里
\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
命令替换multicolumn
和multirow
,从而\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}