双 for 循环,嵌套 for 循环依赖于外部

双 for 循环,嵌套 for 循环依赖于外部

我想迭代一个数组,然后使用迭代器的当前值作为下一个 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
    }
}

相关内容