我想迭代一个数组,然后使用迭代器的当前值作为下一个 for 循环的参数。到目前为止,我的代码如下所示,但我无法获得正确的语法。
\foreach \dest [count=\xi] in {2,...,4}
\foreach \source in {\xi-1,...,\xi+1}
\path (I-\source) edge (H-\dest); % do something with the source and dest values.
例如,在外循环中第一个值是 2,因此内循环将遍历 {2-1,2,2+1}。
在下图中,我手动绘制了线条来说明输出,尽管不一定非要使用不同的颜色。这个想法是,第一个隐藏层中的每个蓝色节点都与输入层节点中的三个节点相连,这取决于索引(请注意,我无意中漏掉了最后的一个绿色圆圈)。
答案1
如果您无法通过 - 语句正确解析数据foreach
,您可以执行以下操作。使用 评估外层循环中所需的值evaluate
,然后将它们作为min/max
值传递给foreach
。
\foreach [count=\i,
evaluate=\i as \ymin using int(\x-1),
evaluate=\i as \ymax using int(\x+1)] \x in {2,...,4} {
\foreach \y in {\ymin,...,\ymax} {
% draw your stuff here
}
}