我想在 TikZ 中绘制一个数学矩阵,在其中可以绘制辅助分区线。到目前为止,我发现用括号绘制矩阵非常简单。
\begin{tikzpicture}
\matrix [matrix of math nodes,left delimiter={[},right delimiter={]}]
{
1 & 2 & 1 & 0 & 0 & 10 \\
3 & 2 & 0 & 1 & 0 & 20 \\
-2 & -10 & 0 & 0 & 1 & 0 \\
};
\end{tikzpicture}
但是,我想用第 5 列和第 6 列之间的垂直线以及第 2 行和第 3 行之间的水平线来划分矩阵。此外,最好在括号外面(顶部)有“识别变量”。
答案1
不完全是上游,但也有一些非 TikZ 选项使用kbordermatrix
和blkarray
包装:
\documentclass{article}
\usepackage{kbordermatrix}% http://www.hss.caltech.edu/~kcb/TeX/kbordermatrix.sty
\usepackage{blkarray}% http://ctan.org/pkg/blkarray
\begin{document}
\[
\kbordermatrix{%
& x & y & z & w & r & & M \\
& 1 & 2 & 1 & 0 & 0 & \vrule & 10 \\
& 3 & 2 & 0 & 1 & 0 & \vrule & 20 \\ \cline{2-8}
& -2 & -10 & 0 & 0 & 1 & \vrule & 0
}
\]
\[
\begin{blockarray}{crrrrrrc}
& x & y & z & w & r & M &\\
\begin{block}{[crrrrr|rc]}
& 1 & 2 & 1 & 0 & 0 & 10 & \\
& 3 & 2 & 0 & 1 & 0 & 20 & \\ \BAhhline{~------~}
& -2 & -10 & 0 & 0 & 1 & 0 & \\
\end{block}
\end{blockarray}
\]
\end{document}
可以修改代码以满足您的需求,以改善对齐和间距。在这两个示例中,您还可以添加行索引。
答案2
基本方法:
一旦你命名了矩阵(mymatrix
在本例中),你就可以在符号中引用它mymatrix-row-column
。通常的定位above=of
也可以工作。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,positioning}
\begin{document}
\begin{tikzpicture}[node distance=-1ex]
\matrix (mymatrix) [matrix of math nodes,left delimiter={[},right
delimiter={]}]
{
1 & 2 & 1 & 0 & 0 & 10 \\
3 & 2 & 0 & 1 & 0 & 20 \\
-2 & -10 & 0 & 0 & 1 & 0 \\
};
\draw[red] (mymatrix-2-1.south west) -- (mymatrix-2-6.south east);
\draw[red] (mymatrix-1-5.north east) -- (mymatrix-3-5.south east);
\node [above=of mymatrix-1-1.north] {x};
\node [above=of mymatrix-1-2.north] {y};
\node [above=of mymatrix-1-3.north] {z};
\node [above=of mymatrix-1-4.north] {w};
\node [above=of mymatrix-1-5.north] {r};
\node [above=of mymatrix-1-6.north] {M};
\end{tikzpicture}
\end{document}