逐步显示矩阵的列

逐步显示矩阵的列

我想逐步或动态地显示矩阵的元素。理想情况下,我希望每次前进时元素(如 Beamer 的叠加层)从灰色淡入黑色,但我满足于单元格背景的变化(从浅灰色变为白色)。我得到的并不令人满意:


    \begin{tikzpicture}
      % \tikzstyle{unseen} = [color=blue!70]
      \tikzstyle{seen} = []
      \matrix (m) [matrix of math nodes,
      nodes in empty cells,
      minimum size=7mm, ampersand replacement=\&, every
      node/.style={font={\large\ttfamily\bfseries},fill=gray!10}] {
        1 \& 0 \& 0 \& 0 \& 0 \& 0 \& 0 \\
        0 \& 1 \& 1 \& 1 \& 0 \& 0 \& 0 \\
        0 \& 1 \& 1 \& 0 \& 1 \& 1 \& 0 \\
        0 \& 0 \& 0 \& 1 \& 1 \& 1 \& 0 \\
        0 \& 0 \& 0 \& 0 \& 0 \& 0 \& 1 \\
       };
       \foreach \f/\r/\c in {1/2/1,2/3/1} {
         \draw<\f->[seen] (m-\r-\c.north west) rectangle (m-\r-\c.south east);
       }
    \end{tikzpicture}

由于这些(目前)是稀疏二进制矩阵,我可以让foreach列表插入1条目吗?

非常感谢所有帮助或建议。

答案1

语法可能有点隐藏,我不太确定第一列的方块,但类似

在此处输入图片描述

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}

\begin{frame}[fragile]{}

\newcommand\showmatrix{%
     \begin{tikzpicture}
      % \tikzstyle{unseen} = [color=blue!70]
      \tikzstyle{seen} = []
      \matrix (m) [matrix of math nodes,
      nodes in empty cells,
      minimum size=7mm, ampersand replacement=\&, every
      node/.style={font={\large\ttfamily\bfseries},fill=gray!10}] {
      \zz  1 \& 0 \& 0 \& 0 \& 0 \& 0 \& 0 \\
      \zz  0 \& 1 \& 1 \& 1 \& 0 \& 0 \& 0 \\
      \zz  0 \& 1 \& 1 \& 0 \& 1 \& 1 \& 0 \\
      \zz  0 \& 0 \& 0 \& 1 \& 1 \& 1 \& 0 \\
      \zz  0 \& 0 \& 0 \& 0 \& 0 \& 0 \& 1 \\
       };
       \foreach \f/\r/\c in {1/2/1,2/3/1} {
         \draw<\f->[seen] (m-\r-\c.north west) rectangle (m-\r-\c.south east);
       }
    \end{tikzpicture}}

\def\zz#1\&#2\\{#1\\}%
\only<1>{\showmatrix}%
\def\zz#1\&#2\&#3\\{#1\&#2\\}%
\only<2>{\showmatrix}%
\def\zz#1\&#2\&#3\&#4\\{#1\&#2\&#3\\}%
\only<3>{\showmatrix}%
\def\zz#1\&#2\&#3\&#4\&#5\\{#1\&#2\&#3\&#4\\}%
\only<4>{\showmatrix}%
\def\zz#1\&#2\&#3\&#4\&#5\&#6\\{#1\&#2\&#3\&#4\&#5\\}%
\only<5>{\showmatrix}%
\def\zz#1\&#2\&#3\&#4\&#5\&#6\&#7\\{#1\&#2\&#3\&#4\&#5\&#6\\}%
\only<6>{\showmatrix}%
\def\zz#1\&#2\&#3\&#4\&#5\&#6\&#7\\{#1\&#2\&#3\&#4\&#5\&#6\&#7\\}%
\only<7>{\showmatrix}%
\end{frame}
\end{document}

相关内容