【问题标题】:How to combine two lists to plot coordinate pairs?如何组合两个列表来绘制坐标对?
【发布时间】:2013-05-12 23:19:44
【问题描述】:

我已将 x 数据(来自文本文件)读入 list1,并将 y 数据类似地读入 list2:

list1 = { 0.0,    0.172,  0.266, ..}
list2 = {-5.605, -5.970, -6.505, ..} 

如何组合这两个列表以绘制点 {0.0, -5.605}, {0.172, -5.970}, {0.266, -6.505},....

【问题讨论】:

  • 也许你想试试:Riffle[list1, list2]~Partition~2
  • 用户应该解释为什么它被关闭了。这肯定不是“离题”。
  • 致关闭者:不欢迎您对完全不了解的语言(Mathematica (TM))提出意见。你应该以更明智的方式使用你的亲密力量。
  • @belisarius 我喜欢认为我对这门语言了解一两件事,但我仍在投票结束。 ;-p(注意眨眼)

标签: wolfram-mathematica


【解决方案1】:

如果您不喜欢 Pinguin Dirk 的建议,请尝试

Transpose[{list1,list2}]

【讨论】:

    【解决方案2】:

    又一个..

    MapThread[ {#1, #2} & , {list1, list2}]
    

    或者如果你想优雅地处理不等长的列表:

    MapThread[ {#1, #2} &, Take[#, All, Min @@ Length /@ #] &@{list1, list2} ]
    

    【讨论】:

    • 你甚至可以使用MapThread[List , {list1, list2}]来简化这个
    【解决方案3】:

    这是另一个创建可重用函数来配对两个向量的答案。该函数使用一个纯函数映射最短向量的长度来创建对。

        list1 = {1, 2, 3, 4, 5}; 
        list2 = {13, 18, 20, 18, 13};
        pairUp[xValues_ , yValues_] := ({xValues[[#]], yValues[[#]]}) & /@ 
           Range[Min[Length[xValues], Length[yValues]]];
    
        pairUp[list1, list2]
        (*
          {{1, 13}, {2, 18}, {3, 20}, {4, 18}, {5, 13}}
        *)
    

    希望这会有所帮助,

    埃德蒙

    PS:刚接触 Mathematica,希望通过不时在这里回答一些问题来提高我的理解。

    【讨论】:

      【解决方案4】:

      给你

      Partition[Riffle[x,y],2]
      

      【讨论】:

      • 请在您的代码中添加一些解释,以便其他人可以从中学习
      猜你喜欢
      • 2022-01-16
      • 2012-07-08
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2021-11-22
      相关资源
      最近更新 更多