![如何轻松写出矩阵的转置?](https://linux22.com/image/351579/%E5%A6%82%E4%BD%95%E8%BD%BB%E6%9D%BE%E5%86%99%E5%87%BA%E7%9F%A9%E9%98%B5%E7%9A%84%E8%BD%AC%E7%BD%AE%EF%BC%9F.png)
我有一个矩阵 A,用环境来描述矩阵如下文的 MWE 所示。
\documentclass{article}
\begin{document}
Consider the matrix
$A=\begin{bmatrix}
1 & 0 & -1 \\
2 & 3 & 1 \\
\end{bmatrix}$
Then its transpose is
$A^T=\begin{bmatrix}
1 & 2 \\
0 & 3\\
-1 & 1 \\
\end{bmatrix}$
\end{document}
如何在不输入所有条目的情况下获取 A 的转置?换句话说,是否存在 \ 表示“列结束”而不是“行结束”的环境?
我希望我可以粘贴并复制 A 的定义,然后将 bmatrix 更改为矩阵管他呢。
答案1
一种解决方案是以某个唯一的名称保存矩阵,然后在旋转矩阵的同时重复使用该矩阵。
请注意(看看为什么这里)当使用命令用 tikz 排版矩阵时,不能使用简单的“与”符号作为分隔符。
还要注意,最后一个 \\ 是必填的(否则您将收到缺少 } 的错误)。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}
\newcommand{\mycustommatrix}[2]{
\global\expandafter\def\csname mycustommatrixnamed#1\endcsname{#2}
\left [ \begin{tikzpicture}[baseline=-0.5ex]
\matrix[matrix of math nodes, ampersand replacement=\&] { \csname mycustommatrixnamed#1\endcsname };
\end{tikzpicture} \right ]
}
\newcommand{\mycustomtranspose}[1]{
\left [ \rotatebox[origin=c]{90}{\reflectbox{ \begin{tikzpicture}[baseline=-0.5ex]
\matrix[matrix of math nodes, ampersand replacement=\&, nodes={rotate=90,xscale=-1}] { \csname mycustommatrixnamed#1\endcsname };
\end{tikzpicture} }} \right ]
}
\begin{document}
$A = \mycustommatrix{A}{
1 \& 0 \& -1 \\
2 \& 3 \& 1 \\
}$
$A^T = \mycustomtranspose{A}$
\end{document}