【问题标题】: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?Mathematica:如何将 x 坐标的嵌套列表和 y 坐标的嵌套列表转换为 (x,y) 坐标的嵌套列表?
【发布时间】:2020-05-10 00:14:35
【问题描述】:

我有两个嵌套列表:一个包含一组“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}}

如何按以下格式制作嵌套的坐标列表? 最终={{{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]]}]

非常感谢您的帮助!

【问题讨论】:

    标签: nested coordinates wolfram-mathematica transpose nested-lists


    【解决方案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]
    

    产生完全相同的结果

    必须有比这更多的方法来做到这一点

    仔细检查每一项,确保我没有犯错

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多