数字数组/列表

数字数组/列表

如何从数组或列表中检索数字,以便可以将它们用作计算的一部分,如下所示:

\def\MaxValueArray{9220,1024,0.95,162.22}
 \foreach \valBS  [count=\k] in {4089,512,0.65,125.85}{
    \path (3*\A:\k) node[right,font=\tiny] {\k*\valBS/MaxValueArray[\k]}; 

我无法做到这一点,无论如何我都可以使用索引从数组中检索该值。

答案1

listofitems包具有阵列功能。

\documentclass{arlticle}
\usepackage{tikz,listofitems}
\begin{document}
\def\A{10}
\begin{tikzpicture}
\readlist\MaxValueArray{9220,1024,0.95,162.22}
 \foreach \valBS  [count=\k] in {4089,512,0.65,125.85}{
    \path (3*\A:\k) node[right,font=\tiny] {\k*\valBS/\MaxValueArray[\k]}; }
\end{tikzpicture}
\end{document}

在此处输入图片描述

更新

为了评估结果(来自 OP 的评论),也许是这样的:

\documentclass{arlticle}
\usepackage{tikz,listofitems}
\begin{document}
\def\A{10}
\begin{tikzpicture}
\readlist\MaxValueArray{9220,1024,0.95,162.22}
\readlist\valBS{4089,512,0.65,125.85}
 \foreachitem \k \in \valBS{
    \path (3*\A:\kcnt) node[right,font=\tiny] {
      \pgfmathparse{\kcnt*\k/\MaxValueArray[\kcnt]} \pgfmathresult};}
\end{tikzpicture}
\end{document}

在此处输入图片描述

原生listofitems循环

listofitem利用自己的循环功能可以获得相同的(以前)结果:

\documentclass{arlticle}
\usepackage{tikz,listofitems}
\begin{document}
\def\A{10}
\begin{tikzpicture}
\readlist\MaxValueArray{9220,1024,0.95,162.22}
\readlist\valBS{4089,512,0.65,125.85}
 \foreachitem \k \in \valBS{
    \path (3*\A:\kcnt) node[right,font=\tiny] {\kcnt*\k/\MaxValueArray[\kcnt]};}
\end{tikzpicture}
\end{document}

相关内容