答案1
与。{bNiceMatrix}
nicematrix
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
$\begin{bNiceMatrix}%
[
margin ,
first-row , code-for-first-row = s_{\arabic{jCol}} ,
first-col , code-for-first-col = s_{\arabic{iRow}}
]
&&&&&&&& \\
& \Block{4-4}{\text{HMM}_{\text{Deta}}}
&&& &0&0&0&0\\
& &&& &0&0&0&0\\
& &&& &0&0&0&0\\
& &&& &0&0&0&0\\
& 0&0&0&0 & \Block{4-4}{\text{HMM}_{\text{Noise}}} \\
& 0&0&0&0 \\
& 0&0&0&0 \\
& 0&0&0&0 \\
\CodeAfter
\SubMatrix[{1-1}{4-4}][extra-height=-1mm]
\SubMatrix[{5-5}{8-8}][extra-height=-1mm]
\end{bNiceMatrix}$
\end{document}
您需要进行多次编译(因为nicematrix
在后台使用了 PGF/TikZ 节点)。
答案2
因为你没有指定要使用的 TeX 格式,所以我向你展示了如何在 plainTeX 中执行操作。有宏\bordermatrix
和。其余的几乎都是 TeX 原语。\pmatrix
\multispan
$$
\def\mf #1 #2/#3 {\multispan4\kern#1pt\vtop to0pt{\null\vskip-.8\baselineskip
\hbox{$\displaystyle \pmatrix{\cr\hbox to5.5em{\hss#2\hss}\cr
\rm\hfil#3\cr\cr}$}\vss}}
\delcode`(=\delcode`[ \delcode`)=\delcode`]
\bordermatrix{ &s_1&s_2&s_3&s_4&s_5&s_6&s_7&s_8\cr
s_1 & \mf0 HMM/Data & 0 & 0 & 0 & 0 \cr
s_1 & & & & & 0 & 0 & 0 & 0 \cr
s_1 & & & & & 0 & 0 & 0 & 0 \cr
s_1 & & & & & 0 & 0 & 0 & 0 \cr
s_1 & 0 & 0 & 0 & 0 & \mf7 HMM/Noise \cr
s_1 & 0 & 0 & 0 & 0 \cr
s_1 & 0 & 0 & 0 & 0 \cr
s_1 & 0 & 0 & 0 & 0 \cr
}
$$
\bye