我如何用彩色方框替换矩阵元素?假设我有一个 10x10 矩阵,其中有条目 {+1,-1}。我想用黑色方框表示 +1,用红色方框表示 -1,这样就可以得到一个设计。有人能给我提供清晰的想法吗?提前谢谢。
答案1
下面我提出两种可能性。
你甚至不需要
1
s;有一个+
和-
字符的数组就足够了:\documentclass{article} \usepackage{fancyvrb} \usepackage{xcolor} \makeatletter \newenvironment{MyVerb} { \def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'} \catcode`+=\active \catcode`-=\active \setlength\fboxsep{6pt} \offinterlineskip \VerbatimEnvironment \begin{Verbatim} } {\end{Verbatim}} \makeatother \begin{document} \begin{MyVerb}[defineactive=% \def+{\colorbox{black}{\phantom{a}}} \def-{\colorbox{red!70!black}{\phantom{a}}}] +-+-+-+-+- -+-+-+-+-+ +-+-+-+-+- -+-+-+-+-+ +-+-+-+-+- -+-+-+-+-+ +-+-+-+-+- -+-+-+-+-+ +-+-+-+-+- -+-+-+-+-+ \end{MyVerb} \begin{MyVerb}[defineactive=% \def+{\colorbox{black}{\phantom{a}}} \def-{\colorbox{red!70!black}{\phantom{a}}}] +---+---+- --+---+--- -+++-+++-+ --+---+--- +---+---+- ++-+++-+++ +---+---+- --+---+--- -+++-+++-+ --+---+--- \end{MyVerb} \begin{MyVerb}[defineactive=% \def+{\colorbox{black}{\phantom{a}}} \def-{\colorbox{red!70!black}{\phantom{a}}}] ++++++++++ +---++---+ +-+-++-+-+ +++-++-+++ ----++---- ----++---- +++-++-+++ +-+-++-+-+ +---++---+ ++++++++++ \end{MyVerb} \end{document}
这是使用这次的不同方法
collcell
包:\documentclass{article} \usepackage[table]{xcolor} \usepackage{collcell}\def\Side{8pt} \newcommand\ColCell[1]{% \ifnum#1=-1\relax \gdef\mycolor{red!70!black} \else \ifnum#1=1\relax \gdef\mycolor{black} \fi\fi \expandafter\expandafter\cellcolor{\mycolor}% \parbox[c][\dimexpr\Side+2\tabcolsep\relax][c]{\Side}{}% } \newcolumntype{E}{>{\centering\arraybackslash\collectcell\ColCell}p{\Side}<{\endcollectcell}} \begin{document} \noindent\begin{tabular}{*{10}{E}} +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 \\ -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 \\ +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 \\ -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 \\ +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 \\ -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 \\ +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 \\ -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 \\ +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 \\ -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 & +1 \\ \end{tabular}\qquad \noindent\begin{tabular}{*{10}{E}} +1 & -1 & -1 & -1 & +1 & -1 & -1 & -1 & +1 & -1 \\ -1 & -1 & +1 & -1 & -1 & -1 & +1 & -1 & -1 & -1 \\ -1 & +1 & +1 & +1 & -1 & +1 & +1 & +1 & -1 & +1 \\ -1 & -1 & +1 & -1 & -1 & -1 & +1 & -1 & -1 & -1 \\ +1 & -1 & -1 & -1 & +1 & -1 & -1 & -1 & +1 & -1 \\ +1 & +1 & -1 & +1 & +1 & +1 & -1 & +1 & +1 & +1 \\ +1 & -1 & -1 & -1 & +1 & -1 & -1 & -1 & +1 & -1 \\ -1 & -1 & +1 & -1 & -1 & -1 & +1 & -1 & -1 & -1 \\ -1 & +1 & +1 & +1 & -1 & +1 & +1 & +1 & -1 & +1 \\ -1 & -1 & +1 & -1 & -1 & -1 & +1 & -1 & -1 & -1 \\ \end{tabular}\bigskip \noindent\begin{tabular}{*{10}{E}} +1 & +1 & +1 & +1 & +1 & +1 & +1 & +1 & +1 & +1 \\ +1 & -1 & -1 & -1 & +1 & +1 & -1 & -1 & -1 & +1 \\ +1 & -1 & +1 & -1 & +1 & +1 & -1 & +1 & -1 & +1 \\ +1 & +1 & +1 & -1 & +1 & +1 & -1 & +1 & +1 & +1 \\ -1 & -1 & -1 & -1 & +1 & +1 & -1 & -1 & -1 & -1 \\ -1 & -1 & -1 & -1 & +1 & +1 & -1 & -1 & -1 & -1 \\ +1 & +1 & +1 & -1 & +1 & +1 & -1 & +1 & +1 & +1 \\ +1 & -1 & +1 & -1 & +1 & +1 & -1 & +1 & -1 & +1 \\ +1 & -1 & -1 & -1 & +1 & +1 & -1 & -1 & -1 & +1 \\ +1 & +1 & +1 & +1 & +1 & +1 & +1 & +1 & +1 & +1 \\ \end{tabular} \end{document}