用字符标记矩阵

用字符标记矩阵

如何添加标签如下图所示:

在此处输入图片描述

我找到了一些主题,但没有一个能解决我的问题:

矩阵上方的文本

用字符标记矩阵的行

答案1

顶行具有适当的数学间距:数组中没有列间空间,但有空原子以实现正确的间距。

我提供了两个版本,一个版本包含操作的完整规范,一个版本仅包含矩阵的符号,您可以自行选择。

\documentclass{article}
\usepackage{amsmath,array}

\newcolumntype{M}{>{{}}c<{{}}}

\begin{document}

With full specification also in the bottom line
\[
\newcommand{\lhs}{% A shorthand for not repeating three times the same stuff
  \begin{bmatrix}
  y(\mathbf{x}_1)\\
  \vdots\\
  y(\mathbf{x}_N)\\
\end{bmatrix}%
}
\begin{array}{@{}M@{}M@{}l@{}M@{}M@{}M@{}M@{}M@{}M@{}l@{}}
\lhs
&
\sim
&
\mathcal{N}\left(\vphantom{\lhs}\right.\kern-\nulldelimiterspace
&
\begin{bmatrix} 0 \\ \vdots \\ 0 \end{bmatrix}
&
,
&
\begin{bmatrix}
  k(\mathbf{x}_1,\mathbf{x}_1)&\cdots&k(\mathbf{x}_1,\mathbf{x}_N)\\
  \vdots&\ddots&\vdots\\
  k(\mathbf{x}_N,\mathbf{x}_1)&\cdots&k(\mathbf{x}_N,\mathbf{x}_N)\\
  \end{bmatrix}
&
+
&
\sigma^2\begin{bmatrix}
1&\cdots&0\\
\vdots&\ddots&\vdots\\
0&\cdots&1\\
\end{bmatrix}
&
\left.\kern-\nulldelimiterspace\vphantom{\lhs}\right)
\\[5ex]
\mathbf{y} & \sim &
  \mathcal{N}\,( & \mathbf{0} & , & \mathbf{K} & + & \sigma^2\mathbf{I} & )
\end{array}
\]

With just the names of the matrices in the bottom line
\[
\newcommand{\lhs}{% A shorthand for not repeating three times the same stuff
  \begin{bmatrix}
  y(\mathbf{x}_1)\\
  \vdots\\
  y(\mathbf{x}_N)\\
\end{bmatrix}%
}
\begin{array}{@{}M@{}M@{}l@{}M@{}M@{}M@{}M@{}M@{}M@{}l@{}}
\lhs
&
\sim
&
\mathcal{N}\left(\vphantom{\lhs}\right.\kern-\nulldelimiterspace
&
\begin{bmatrix} 0 \\ \vdots \\ 0 \end{bmatrix}
&
,
&
\begin{bmatrix}
  k(\mathbf{x}_1,\mathbf{x}_1)&\cdots&k(\mathbf{x}_1,\mathbf{x}_N)\\
  \vdots&\ddots&\vdots\\
  k(\mathbf{x}_N,\mathbf{x}_1)&\cdots&k(\mathbf{x}_N,\mathbf{x}_N)\\
  \end{bmatrix}
&
+
&
\sigma^2\begin{bmatrix}
1&\cdots&0\\
\vdots&\ddots&\vdots\\
0&\cdots&1\\
\end{bmatrix}
&
\left.\kern-\nulldelimiterspace\vphantom{\lhs}\right)
\\[5ex]
\mathbf{y} & & & \mathbf{0} & & \mathbf{K} & & \sigma^2\mathbf{I} & 
\end{array}
\]
\end{document}

在此处输入图片描述

我使用了简写,\lhs以避免重复三次(在每个显示中)相同的内容。名称是任意的,定义不会在显示中保留下来。其目的是形成左侧,并通过垂直幻影为\left(和括号提供合适的高度。\right)

答案2

这可能看起来不太复杂,但使用一个简单的\begin{array}...\end{array}方法可能就能完成例子中所展示的操作。

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[\begin{array}{*5c}
\begin{bmatrix}
y(x_1)\\
\vdots\\
y(x_N)\\
\end{bmatrix}&\sim\mathcal{N}&\left(\begin{bmatrix}
0\\
\vdots\\
0\\
\end{bmatrix},\right.&\begin{bmatrix}
k(x_1,x_1)&\cdots&k(x_1,x_N)\\
\vdots&\ddots&\vdots\\
k(x_N,x_1)&\cdots&k(x_N,x_N)\\
\end{bmatrix}&+\sigma^2\left.\begin{bmatrix}
1&\cdots&0\\
\vdots&\ddots&\vdots\\
0&\cdots&1\\
\end{bmatrix}\right)\\
y&&0&K&+\sigma^2I
\end{array}\]
\end{document}

相关内容