Mathematica:如何将 x 坐标的嵌套列表和 y 坐标的嵌套列表制作成 (x,y) 坐标的嵌套列表?
Mathematica: How do make a nested list of x coordinates and a nested list of y coordinates into a nested list of (x,y) coordinates?
我有两个嵌套列表:一个有一组 "a through d" 嵌套的 x 坐标,一个有一组 "a through 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}}
如何制作以下格式的嵌套坐标列表?
最终={{{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}]
马上returns
{{{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]
产生完全相同的结果
必须有比这更多的方法来做到这一点
仔细检查每一项以确保我没有犯错
我有两个嵌套列表:一个有一组 "a through d" 嵌套的 x 坐标,一个有一组 "a through 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}}
如何制作以下格式的嵌套坐标列表? 最终={{{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}]
马上returns
{{{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]
产生完全相同的结果
必须有比这更多的方法来做到这一点
仔细检查每一项以确保我没有犯错