如何从数组或列表中检索数字,以便可以将它们用作计算的一部分,如下所示:
\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}