如何在子图中使用 \bmatrix?

如何在子图中使用 \bmatrix?

我试图将两个具有相同标题的矩阵放在一起,但是在子图环境中使用 \bmatrix 时遇到了问题。

以下是我正在尝试执行的代码:

\begin{figure}[h!]
\centering
\begin{subfigure}[b]
$\begin{bmatrix}
w_{1,1}   & w_{1,2}   & \cdots & w_{1,m-1}   & w_{1,m}\\
w_{2,1}   & w_{2,2}   & \cdots & w_{2,m-1}   & w_{2,m}\\
\vdots    & \vdots    & \ddots & \vdots      & \vdots\\
w_{n-1,1} & w_{n-1,2} & \cdots & w_{n-1,m-1} & w_{n-1,m}\\
w_{n,1}   & w_{n,2}   & \cdots & w_{n,m-1}   & w_{n,m}\\
\end{bmatrix}$
\label{fig:weight-mat}
\end{subfigure}
\begin{subfigure}[b]
$\begin{bmatrix}
b_{1}\\
b_{2}\\
\vdots\\
b_{n-1}\\
b_{n}\\
\end{bmatrix}$
\label{fig:bias-vec}
\end{subfigure}
\caption[Example Connection Weight Matrix with Bias Vector]{Example 
         connection weight matrix with bias vector - the network
         represented has $m$ input units and $n$ output units.}
\end{figure}

我尝试编译时出现的错误是:

[15] [16]
! Missing number, treated as zero.
<to be read again> 
                   $
l.17 $
      \begin{bmatrix}

我认为这可能是子图环境的问题,因为当我将它们放在单独的图中时,它们可以很好地编译,只是一个在另一个之上。

我并不急于使用 subfigure 环境。如果有更好的方法,我愿意听取建议 - 这似乎是做我想做的事情的最佳方式。

答案1

您需要在每个环境的强制参数中指定一个宽度subfigure;例如

\begin{subfigure}[b]{.6\textwidth}
...
\end{subfigure}%
\begin{subfigure}[b]{.4\textwidth}
...
\end{subfigure}

%第一个之后的那个\end{subfigure}是必需的)。

但是,我不清楚为什么要使用subfigure每个矩阵;请注意,示例代码中\label每个矩阵的 s都是无用的,因为事先没有为子图提供。subfigure\caption

你可以简单地这样做:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{figure}
\[
\begin{bmatrix}
w_{1,1}   & w_{1,2}   & \cdots & w_{1,m-1}   & w_{1,m}\\
w_{2,1}   & w_{2,2}   & \cdots & w_{2,m-1}   & w_{2,m}\\
\vdots    & \vdots    & \ddots & \vdots      & \vdots\\
w_{n-1,1} & w_{n-1,2} & \cdots & w_{n-1,m-1} & w_{n-1,m}\\
w_{n,1}   & w_{n,2}   & \cdots & w_{n,m-1}   & w_{n,m}\\
\end{bmatrix}
\begin{bmatrix}
b_{1}\\
b_{2}\\
\vdots\\
b_{n-1}\\
b_{n}\\
\end{bmatrix}
\]
\caption[Example Connection Weight Matrix with Bias Vector]{Example 
         connection weight matrix with bias vector - the network
         represented has $m$ input units and $n$ output units.}
\end{figure}

\end{document}

结果:

在此处输入图片描述

说明[!h]符限制性太强;请使用限制性较小的说明符,或者根本不使用说明符。

答案2

我找到了解决问题的方法,并想将其发布在这里,以防其他人遇到与我同样的问题。

我最终放弃了子图环境,只是使用数学环境来格式化它们。

\begin{figure}[h!]
\centering
\[ \left[ \begin{array}{ccccc}
w_{1,1}   & w_{1,2}   & \cdots & w_{1,m-1}   & w_{1,m}\\
w_{2,1}   & w_{2,2}   & \cdots & w_{2,m-1}   & w_{2,m}\\
\vdots    & \vdots    & \ddots & \vdots      & \vdots\\
w_{n-1,1} & w_{n-1,2} & \cdots & w_{n-1,m-1} & w_{n-1,m}\\
w_{n,1}   & w_{n,2}   & \cdots & w_{n,m-1}   & w_{n,m}
\end{array} \right]
\left[ \begin{array}{c}
b_{1}\\
b_{2}\\
\vdots\\
b_{n-1}\\
b_{n}
\end{array} \right] \]
\label{fig:weight-mat}
\caption[Example Connection Weight Matrix with Bias Vector]{Example
         connection weight matrix with bias vector - the network
         represented has $m$ input units and $n$ output units.}
\end{figure}

如果有人能解决这个问题,我仍然会对如何使用子图环境感兴趣,因为我可能需要在某个时候将标题放在同一个图内的两个矩阵下,所以知道如何做会很有用。

相关内容