有没有办法选择矩阵的元素来重新写入?

有没有办法选择矩阵的元素来重新写入?

假设你有一个矩阵定义为:

\matrix(nums)[matrix of nodes]
        {
        1 & 2 \\ 
        3 & 4 \\ 
        5 & 6\\
        };

并且您想要使用节点 1-2 中写的内容并将其写入另一个矩阵或 tikzpicture 中的某个位置。

有办法吗?

是否可以使用某种技术来选择列表中的元素?

答案1

您可以随时为所需内容定义一个宏,并在需要时使用它:

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

\newcommand{\myelement}{4}

\begin{document}
Next matrix 
\begin{tikzpicture}[baseline]
\matrix(nums)[matrix of nodes, left delimiter=(, right delimiter=)]
{ 1 & 2\\ 3 & \myelement \\ 5 & 6\\};
\end{tikzpicture}
has \myelement{} in position 2,2.

\end{document}

在此处输入图片描述

答案2

如果您将数学和 LaTeX 混合使用,则应考虑sagetex使用开源计算机代数系统 (CAS) 的软件包 Sage。该 CAS 需要安装在您的机器上,或者您可以通过免费的萨基马云帐户。请考虑以下代码:

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagesilent}
M=matrix([[1,2],[3,4],[5,6]])
N = matrix([[M[1,1],0],[0,M[0,1]]])
\end{sagesilent}
For the matrix $M=\sage{M}$ the element in the $(2,1)$ position is  $\sage{M[1][0]}$.
The dot product of the first two row vectors is
$\sage{M[0][0]}\cdot \sage{M[1][0]}+\sage{M[0][1]}\cdot \sage{M[1][1]}=
\sage{M[0][0]*M[1][0]+M[0][1]*M[1][1]}$. The $2 \times 2$ diagonal matrix   $N$, with 
diagonal elements $(2,2)$ and $(1,2)$ is $\sage{N}$. In that case the matrix $M*N=
\sage{M*N}$.
\end{document}

输出如下所示: 在此处输入图片描述

注意:Sage 指的是以 0 开头的矩阵元素,而不是以 1 开头的元素,因此 (1,1) 元素位于矩阵中的 (0,0) 位置。您可以通过 \sage{} 命令访问数学运算。这样您就可以根据需要挑选元素,无需宏。您还可以让 Sage 计算 M*N 的矩阵乘法,从而消除出错的可能性。让 CAS 进行数学运算可以消除粗心的错误,并让您免于排版矩阵。

相关内容