从数组中获取元素

从数组中获取元素

考虑到通用表\mytable,为了从中获取元素,我正在使用\pgfplotstablegetelem{\row}{[index]\column}\of\mytable

但如果我没有表而有一个数组呢?

情况是这样的:\def\array{alba, prova, 13, CO\ped{2}}

我想创建\singleElement取数组第三个元素的数组。

我能怎么做?

答案1

一种定义方式可能是这样:

\def\singleElement#1,#2,#3,#4\close{#3}

然后使用以下命令调用它:

\expandafter\singleElement\array,,,\close

这种方式\singleElement有四个参数,以逗号分隔,以#4结尾\close(当然,您可以选择任何\您喜欢的 -sequence,只需替换\close为,例如,\foo上面的任何地方)。我调用它的方式是:你的\array包含一个逗号分隔元素的列表,所以我让它扩展(\expandafter使 TeX\array在 之前读取\singleElement,因此\array用逗号分隔的列表替换 \singleElement尝试完成其工作),然后\singleElement查找其参数,逗号确保它找到它们,因为如果\array没有足够的元素,您将收到一个错误,因为\singleElement找不到参数的逗号,而这种方式如果\array有少于 4 个元素(即少于 3 个逗号),它会随后找到所有必要的逗号并\close完成参数 4。

当然,这会强制\array用逗号分隔其元素,但你可以用任何你想要的标记替换逗号。如果你想用点作为分隔符,你可以这样做:

\def\singleElement#1.#2.#3.#4\close{#3}

并通过以下方式调用它:

\expandafter\singleElement\array...\close

您可以使用数字、标点符号甚至字母序列:

\def\singleElement#1abc#2abc#3abc#4\close{#3}
\expandafter\singleElement\array abc abc abc\close

将作为元素分隔符abc,但这绝对不可取:)。

当然,这是一个不使用 的解决方案pgfplots,所以可能不是你所期望的,但即使不加载 ,它也能工作pgfplots。事实上,它甚至不需要LaTeX: PlainTeX就足够了。

相关内容