我的目标是使用FOR循环创建成对的2D矢量元素。考虑以下示例(不是我的真实示例,只是为了描述问题而简化的示例):
step1 = [ for (i=[1:5])
[i,2*i+3]
];
step2 = [ for (i=[1:5])
[-i,2*i+2]
];
steps = [ for (i=[1:5])
concat([step1[i-1]],[step2[i-1]])
];
echo(step1);
echo(step2);
echo(steps);
step1矢量如下:[[1,5],[2,7],[3,9],[4,11],[5,13]]
step2矢量如下:[[-1,4],[-2,6],[-3,8],[-4,10],[-5,12]]
我的目标是交织步骤1和步骤2的元素,以产生:
[[1, 5], [-1, 4], [2, 7], [-2, 6], [3, 9], [-3, 8], [4, 11], [-4, 10], [5, 13], [-5, 12]]
到目前为止,我所能实现的最接近使用如上所述的“concat”,但这将每个连接对视为一个单独的向量,因此在每个交织对周围加上一个额外的方括号,如下所示:
[[[1, 5], [-1, 4]], [[2, 7], [-2, 6]], [[3, 9], [-3, 8]], [[4, 11], [-4, 10]], [[5, 13], [-5, 12]]]
如果我试图在单个循环中创建每对元素,例如。
steps = [ for (i=[1:5])
[i,2*i+3],[-i,2*i+2]
];
然后,对于逗号后面的元素的循环变量,我得到了一个“未知变量”错误。
一定有一个简单的方法可以做到这一点——有人能帮忙吗?