我有一组这样的数字(实际上它是一个 12 阶的 Hadamard 矩阵)。将此块转换为矩阵的最快方法是什么?当然,可以使用矩阵环境(例如,bmatrix
通过pmatrix
在数字之间添加 & 符号)来实现,但我正在寻找一种仅复制块的解决方案。
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 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
这spalign
包对此非常有用:它允许通过用空格分隔列和用分号分隔行来创建矩阵,例如
\documentclass{article}
\usepackage{spalign}
\begin{document}
\[
\spalignmat{
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 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{document}
如果您还想避免使用分号,您可以让 TeX 在每一行末尾插入一个分号:
\documentclass{article}
\usepackage{spalign}
\begin{document}
\[
\begingroup\endlinechar=`\;\spalignmat{
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 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
}\endgroup%
\]
\end{document}
答案2
我将为@MarcelKrüger 的好答案添加正确的对齐选项,[r]
以获得良好的输出。
\documentclass{article}
\usepackage{spalign}
\begin{document}
\[
\begingroup\endlinechar=`\;\spalignmat[r]{
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 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
}\endgroup%
\]
\end{document}