我正在尝试将马尔可夫过程的转换矩阵转换为 TeX 格式,并且希望与我们的教科书保持一致并标记列和行。我发现\kbordermatrix
并让我创作出:
\[\kbordermatrix{
&L&M&C \cr
L& .94 & .02 & .01 \cr
M& .05 & .96 & .04 \cr
C& .01 & .02 & .95 \cr
}\]
但我想添加另一个跨越最后三列的标签,上面写着“当前状态”(并带有下划线),并且我想用“下一个状态”标记最后三行。
是否有捷径可寻?
答案1
这是一个相当丑陋的解决方案,但它是我能得到的最接近的答案:
\documentclass{article}
\usepackage{kbordermatrix}
\usepackage{graphicx}
\begin{document}
\begin{tabular}{c@{}c@{}}
& \mbox{\hspace{6mm}Current State} \\
\parbox[c][17mm][t]{3mm}{\rotatebox{90}{Next State}} &
$ \kbordermatrix{
& L & M & C \cr
L & .94 & .02 & .01 \cr
M & .05 & .96 & .04 \cr
C & .01 & .02 & .95 \cr
} $ \\
\end{tabular}
\end{document}
其结果是:
6mm 用于定位“当前状态”
17mm 用于定位“下一个状态”
3mm 是“Next State”和矩阵之间的距离
答案2
这是一个{NiceTabular}
使用 的解决方案nicematrix
。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{c@{\;}cccc}
& & \Block{1-3}{Current State} \\
& & L & M & C \\
\Block{3-1}{\rotate Next State}
& L & .94 & .02 & .01 \\
& M & .05 & .96 & .04 \\
& C & .01 & .02 & .95 \\
\CodeAfter \SubMatrix[{3-3}{5-5}]
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
使用 PGF/Tikz 节点)。