以可读的方式初始化 16x16 矩阵

以可读的方式初始化 16x16 矩阵

我正在尝试以可读的方式初始化一个 16x16 矩阵。它是图的邻接矩阵,因此它填充了 1 和 0,我省略了 0 以使其更清晰。

我的问题:以以下方式启动矩阵:

\documentclass{article}
\usepackage{blkarray}
\begin{document}

\begin{blockarray}{ccccccccccccccccc}
& (1,1) & (1,2)& (1,3) & (1,4) & (2,1) & (2,2) & (2,3) & (2,4) & (3,1) & (3,2) & (3,3) & (3,4) & (4,1) & (4,2) & (4,3) & (4,4) \\
\begin{block}{c(cccccccccccccccc)}
   (1,1)&  &  &  &  & 1 &&&&&&1&1&&&1&1 \\
   (1,2)&  &  &  & 1 &  &&&&&&1&1&&&1&1\\
   (1,3)&  &  &  &  &  &&&&&&&&&&&\\
   (1,4)&  &  &  &  &  &&&&&&&&&&&\\
   (2,1)&  & 1 &  &  &  &&&&&&1&1&&&1&1\\
   (2,2)& 1 &  &  &  &  &&&&&&1&1&&&1&1\\
   (2,3)&  &  &  &  &  &&&&&&&&&&&\\
   (2,4)&  &  &  &  &  &&&&&&&&&&&\\
   (3,1)&  &  &  &  &  &&&&&&&&&&&\\
   (3,2)&  &  &  &  &  &&&&&&&&&&&\\
   (3,3)& 1 & 1 &  &  & 1 &1&&&&&&&&&&1\\
   (3,4)& 1 & 1 &  &  & 1 &1&&&&&&&&&1&\\
   (4,1)&  &  &  &  &  &&&&&&&&&&&\\
   (4,2)&  &  &  &  &  &&&&&&&&&&&\\
   (4,3)& 1 & 1 &  &  & 1 &1&&&&&&1&&&&\\
   (4,4)& 1 & 1 &  &  & 1 &1&&&&&1&&&&&\\                              
\end{block}
\end{blockarray}

\end{document}

输出总是向右移动,并且打印矩阵在 (4,1) 列处被切割 切割矩阵

我如何以适当的方式使矩阵居中,以使其完全可见?

我想试试哪种方式最适合显示 16x16 矩阵。由于矩阵大小以及我想突出显示 4x4 块,我也尝试使用表格,但遇到了同样的问题:

\documentclass{article} \usepackage{array} \begin{document}
> \makeatletter \newcommand{\thickhline}{%
>     \noalign {\ifnum 0=`}\fi \hrule height 1pt
>     \futurelet \reserved@a \@xhline } \newcolumntype{"}{@{\hskip\tabcolsep\vrule width 1pt\hskip\tabcolsep}}
> \makeatother
> 
> \begin{tabular}{c"c|c|c|c"c|c|c|c"c|c|c|c"c|c|c|c|} • & (1,1) & (1,2)
> & (1,3) & (1,4) & (2,1) & (2,2) & (2,3) & (2,4) & (3,1) & (3,2) &
> (3,3) & (3,4) & (4,1) & (4,2) & (4,3) & (4,4) \\  \thickhline  (1,1) &
> • & • & • & • & • & • & • & • & • & • & • & • & • & • & • & • \\ 
> \hline  (1,2) & • & • & • & • & • & • & • & • & • & • & • & • & • & •
> & • & • \\  \hline  (1,3) & • & • & • & • & • & • & • & • & • & • & •
> & • & • & • & • & • \\  \hline  (1,4) & • & • & • & • & • & • & • & •
> & • & • & • & • & • & • & • & • \\  \thickhline  (2,1) & • & • & • & •
> & • & • & • & • & • & • & • & • & • & • & • & • \\  \hline  (2,2) & •
> & • & • & • & • & • & • & • & • & • & • & • & • & • & • & • \\  \hline
> (2,3) & • & • & • & • & • & • & • & • & • & • & • & • & • & • & • & •
> \\  \hline  (2,4) & • & • & • & • & • & • & • & • & • & • & • & • & •
> & • & • & • \\  \thickhline  (3,1) & • & • & • & • & • & • & • & • & •
> & • & • & • & • & • & • & • \\  \hline  (3,2) & • & • & • & • & • & •
> & • & • & • & • & • & • & • & • & • & • \\  \hline  (3,3) & • & • & •
> & • & • & • & • & • & • & • & • & • & • & • & • & • \\  \hline  (3,4)
> & • & • & • & • & • & • & • & • & • & • & • & • & • & • & • & • \\ 
> \thickhline  (4,1) & • & • & • & • & • & • & • & • & • & • & • & • & •
> & • & • & • \\  \hline  (4,2) & • & • & • & • & • & • & • & • & • & •
> & • & • & • & • & • & • \\  \hline  (4,3) & • & • & • & • & • & • & •
> & • & • & • & • & • & • & • & • & • \\  \hline  (4,4) & • & • & • & •
> & • & • & • & • & • & • & • & • & • & • & • & • \\  \hline 
> \end{tabular}  \end{document}

切割表

您能给我一个解决方案吗?我也非常感谢有关显示大型矩阵的其他建议。

答案1

这是一个临时建议:旋转列标签。

\documentclass{article}
\usepackage{blkarray}
\usepackage{geometry} % set page and text block parameters
\usepackage{graphicx} % for "\rotatebox" macro
\newcommand\rb[1]{\rotatebox{90}{#1}} % shortcut macro
\begin{document}
\begin{center}
\begin{blockarray}{*{17}{c}}
& \rb{(1,1)} & \rb{(1,2)} & \rb{(1,3)} & \rb{(1,4)} 
& \rb{(2,1)} & \rb{(2,2)} & \rb{(2,3)} & \rb{(2,4)}
& \rb{(3,1)} & \rb{(3,2)} & \rb{(3,3)} & \rb{(3,4)} 
& \rb{(4,1)} & \rb{(4,2)} & \rb{(4,3)} & \rb{(4,4)} \\
\begin{block}{c(*{16}{c})}
   (1,1)&  &  &  &  & 1 &&&&&&1&1&&&1&1 \\
   (1,2)&  &  &  & 1 &  &&&&&&1&1&&&1&1\\
   (1,3)&  &  &  &  &  &&&&&&&&&&&\\
   (1,4)&  &  &  &  &  &&&&&&&&&&&\\
   (2,1)&  & 1 &  &  &  &&&&&&1&1&&&1&1\\
   (2,2)& 1 &  &  &  &  &&&&&&1&1&&&1&1\\
   (2,3)&  &  &  &  &  &&&&&&&&&&&\\
   (2,4)&  &  &  &  &  &&&&&&&&&&&\\
   (3,1)&  &  &  &  &  &&&&&&&&&&&\\
   (3,2)&  &  &  &  &  &&&&&&&&&&&\\
   (3,3)& 1 & 1 &  &  & 1 &1&&&&&&&&&&1\\
   (3,4)& 1 & 1 &  &  & 1 &1&&&&&&&&&1&\\
   (4,1)&  &  &  &  &  &&&&&&&&&&&\\
   (4,2)&  &  &  &  &  &&&&&&&&&&&\\
   (4,3)& 1 & 1 &  &  & 1 &1&&&&&&1&&&&\\
   (4,4)& 1 & 1 &  &  & 1 &1&&&&&1&&&&&\\                              
\end{block}
\end{blockarray}
\end{center}
\end{document}

在此处输入图片描述

更新:只是为了好玩:如果我必须绘制这个方案,我可能会使用这个代码。

\documentclass{article}
\usepackage{blkarray}
\usepackage{geometry} % set page and text block parameters
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
\newcommand{\tikzstrut}[1]{%
\tikz[remember picture,baseline=(#1.base),inner sep=0pt] \node (#1) {\strut};%
}
\begin{document}

\begin{center}
\begin{blockarray}{*{17}{c}}
&  &  &  &  &  &&&&&&&&&&& \\
  &\tikzstrut{11}1 & 2 & 3 & 4\tikzstrut{14} &\tikzstrut{21}1 & 2 & 3 &
  4\tikzstrut{24} 
  &\tikzstrut{31}1 & 2 & 3 & 4\tikzstrut{34} &\tikzstrut{41}1 & 2 & 3 &
  4\tikzstrut{44}\\
\begin{block}{c(*{16}{c})}
   (1,1)&  &  &  &  & 1 &&&&&&1&1&&&1&1 \\
   (1,2)&  &  &  & 1 &  &&&&&&1&1&&&1&1\\
   (1,3)&  &  &  &  &  &&&&&&&&&&&\\
   (1,4)&  &  &  &  &  &&&&&&&&&&&\\
   (2,1)&  & 1 &  &  &  &&&&&&1&1&&&1&1\\
   (2,2)& 1 &  &  &  &  &&&&&&1&1&&&1&1\\
   (2,3)&  &  &  &  &  &&&&&&&&&&&\\
   (2,4)&  &  &  &  &  &&&&&&&&&&&\\
   (3,1)&  &  &  &  &  &&&&&&&&&&&\\
   (3,2)&  &  &  &  &  &&&&&&&&&&&\\
   (3,3)& 1 & 1 &  &  & 1 &1&&&&&&&&&&1\\
   (3,4)& 1 & 1 &  &  & 1 &1&&&&&&&&&1&\\
   (4,1)&  &  &  &  &  &&&&&&&&&&&\\
   (4,2)&  &  &  &  &  &&&&&&&&&&&\\
   (4,3)& 1 & 1 &  &  & 1 &1&&&&&&1&&&&\\
   (4,4)& 1 & 1 &  &  & 1 &1&&&&&1&&&&&\\                              
\end{block}
\end{blockarray}\tikz[overlay,remember picture]{
\foreach \i in {1,...,4} \draw[thick,decorate,decoration={brace}] (\i 1.north) -- (\i 4.north)
node[midway,above]{$(\i,\cdot)$};
}
\end{center}
\end{document}

在此处输入图片描述

答案2

呈现\scriptsize并缩小标题列之间的间隙。

\documentclass{article}
\usepackage{blkarray,lipsum}
\begin{document}

\lipsum[3]\medskip

\centerline{\def\!{\kern-5pt}\scriptsize
\begin{blockarray}{ccccccccccccccccc}
& \!(1,1)\! & \!(1,2)\!& \!(1,3)\! & \!(1,4)\! & \!(2,1)\! & \!(2,2)\! & \!(2,3)\! & \!(2,4)\! & \!(3,1)\! & \!(3,2)\! & \!(3,3)\! & \!(3,4)\! & \!(4,1)\! & \!(4,2)\! & \!(4,3)\! & \!(4,4)\! \\
\begin{block}{c(cccccccccccccccc)}
   (1,1)&  &  &  &  & 1 &&&&&&1&1&&&1&1 \\
   (1,2)&  &  &  & 1 &  &&&&&&1&1&&&1&1\\
   (1,3)&  &  &  &  &  &&&&&&&&&&&\\
   (1,4)&  &  &  &  &  &&&&&&&&&&&\\
   (2,1)&  & 1 &  &  &  &&&&&&1&1&&&1&1\\
   (2,2)& 1 &  &  &  &  &&&&&&1&1&&&1&1\\
   (2,3)&  &  &  &  &  &&&&&&&&&&&\\
   (2,4)&  &  &  &  &  &&&&&&&&&&&\\
   (3,1)&  &  &  &  &  &&&&&&&&&&&\\
   (3,2)&  &  &  &  &  &&&&&&&&&&&\\
   (3,3)& 1 & 1 &  &  & 1 &1&&&&&&&&&&1\\
   (3,4)& 1 & 1 &  &  & 1 &1&&&&&&&&&1&\\
   (4,1)&  &  &  &  &  &&&&&&&&&&&\\
   (4,2)&  &  &  &  &  &&&&&&&&&&&\\
   (4,3)& 1 & 1 &  &  & 1 &1&&&&&&1&&&&\\
   (4,4)& 1 & 1 &  &  & 1 &1&&&&&1&&&&&\\                              
\end{block}
\end{blockarray}}

\end{document}

在此处输入图片描述

答案3

我认为您的标题栏没有必要向读者提供有意义的信息。我认为基于分类的呈现方式更合适。

由于您有二进制数据,我甚至会跳过 0,1 并在条目中放置一个项目符号。1 不会添加额外的信息,它只是说它已满,因此您可以通过绘制完整的单元格来进行视觉表示,使其像填字游戏一样,但我懒了。

\documentclass{article}
\usepackage{multirow}
\begin{document}

\begin{tabular}{c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c}
\multicolumn{2}{c|}{}&\multicolumn{4}{c|}{1}&\multicolumn{4}{c|}{2}&\multicolumn{4}{c|}{3}&\multicolumn{4}{c|}{4}\\ \cline{3-18}
\multicolumn{2}{c|}{}&1&2&3&4&1&2&3&4&1&2&3&4&1&2&3&4\\ \hline
\multirow{4}{*}{1}&  1& &  &  &  & 1 &&&&&&1&1&&&1&1 \\\cline{2-18}
                  &  2& &  &  & 1 &  &&&&&&1&1&&&1&1\\ \cline{2-18}
                  &  3& &  &  &  &  &&&&&&&&&&&\\      \cline{2-18}
                  &  4& &  &  &  &  &&&&&&&&&&&\\      \hline
\multirow{4}{*}{2}&  1& & 1 &  &  &  &&&&&&1&1&&&1&1\\ \cline{2-18}
                  &  2&1&  &  &  &  &&&&&&1&1&&&1&1\\  \cline{2-18}
                  &  3& &  &  &  &  &&&&&&&&&&&\\      \cline{2-18}
                  &  4& &  &  &  &  &&&&&&&&&&&\\      \hline
\multirow{4}{*}{3}&  1& &  &  &  &  &&&&&&&&&&&\\      \cline{2-18}
                  &  2& &  &  &  &  &&&&&&&&&&&\\      \cline{2-18}
                  &  3&1& 1 &  &  & 1 &1&&&&&&&&&&1\\  \cline{2-18}
                  &  4&1& 1 &  &  & 1 &1&&&&&&&&&1&\\  \hline
\multirow{4}{*}{4}&  1& &  &  &  &  &&&&&&&&&&&\\      \cline{2-18}
                  &  2& &  &  &  &  &&&&&&&&&&&\\      \cline{2-18}
                  &  3&1& 1 &  &  & 1 &1&&&&&&1&&&&\\  \cline{2-18}
                  &  4&1& 1 &  &  & 1 &1&&&&&1&&&&&    \\\hline
\end{tabular}
\end{document}

在此处输入图片描述

相关内容