我有两个嵌套列表:一个带有一组“ a到d”嵌套的x坐标,一个带有一组“ a到d”嵌套y坐标。
xlist={{xa1,xa2,xa3,xa4},{xb1,xb2,xb3,xb4},{xc1,xc2,xc3,xc4}}
ylist={{ya1,ya2,ya3,ya4},{yb1,yb2,yb3,yb4},{yc1,yc2,yc3,yc4}}
如何以以下格式制作嵌套的坐标列表?final = {{{{xa1,ya1},{xa2,ya2},{xa3,ya3},{xa4,ya4}},{{xb1,yb1},{xb2,yb2},{xb3,yb3},{xb4 ,yb4}},{{xc1,yc1},{xc2,yc2},{xc3,yc3},{xc4,yc4}},{{xd1,yd1},{xd2,yd2},{xd3,yd3}, {xd4,yd4}}}
我已经成功地使用以下内容仅在第一个元素上完成了我想要的,但是我是Mathematica的新手,不知道如何创建一个对所有元素都执行此操作的列表。
Transpose[{xlist[[1]], ylist[[1]]}]
非常感谢您的帮助!
此
xlist={{xa1,xa2,xa3,xa4},{xb1,xb2,xb3,xb4},{xc1,xc2,xc3,xc4}};
ylist={{ya1,ya2,ya3,ya4},{yb1,yb2,yb3,yb4},{yc1,yc2,yc3,yc4}};
h[p_,q_]:=Transpose[{p,q}];
final=MapThread[h,{xlist,ylist}]
立即返回
{{{xa1,ya1},{xa2,ya2},{xa3,ya3},{xa4,ya4}},
{{xb1,yb1},{xb2,yb2},{xb3,yb3},{xb4,yb4}},
{{xc1,yc1},{xc2,yc2},{xc3,yc3},{xc4,yc4}}}
除了您不知道您的位置,它与您所需的输出完全匹配
{{xd1,yd1},{xd2,yd2},{xd3,yd3},{xd4,yd4}}
应该来自您的输入。我认为那是一个错字。
与Mathematica一样,几乎肯定还有其他方法。选择一个您可以记住并使用而不会犯太多错误的工具。
您可以执行的另一种方法是
final=MapThread[Transpose[{#1,#2}]&,{xlist,ylist}]
产生完全相同的结果
您可以执行的另一种方法是
final=Table[Transpose[{xlist[[i]],ylist[[i]]}],{i,1,3}]
产生完全相同的结果
您可以执行的另一种方法是
final=Partition[Transpose[{Flatten[xlist],Flatten[ylist]}],4]
产生完全相同的结果
必须有比这更多的方法
仔细检查每一项,以确保我没有犯错