19

我已将 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},....

4

4 回答 4

20

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

Transpose[{list1,list2}]
于 2013-05-13T14:46:28.630 回答
7

完后还有..

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

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

MapThread[ {#1, #2} &, Take[#, All, Min @@ Length /@ #] &@{list1, list2} ]
于 2013-05-17T14:13:15.237 回答
2

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

    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 的新手,希望通过不时在这里回答一些问题来提高我的理解。

于 2013-05-16T23:11:19.290 回答
0

干得好

Partition[Riffle[x,y],2]
于 2020-04-25T06:52:46.027 回答