假如通过一个循环生成了下面的两个数组:
xx = { };
yy = { };
For[ix = 1, ix <= 100, ix++,
xx = Join[xx, {ix}];
yTemp = Sin[ix];
yy = Join[yy, {yTemp}];
];
想要绘制xx-yy散点图。在MATLAB里面,我们只需要plot(xx,yy)就可以达到目的,但Mathematica里面的ListPlot不能直接绘制两个行向量,需要把它们变成一个n行、2列的矩阵:
Table[{xx[[ix]], yy[[ix]]}, {ix, 1, Length[xx]}]
接下来就可以用ListPlot画图了:
ListPlotTable[{xx[[ix]], yy[[ix]]}, {ix, 1, Length[xx]}]]
看一个具体的例子:
in[1] := xx = Range[1,10] (shift + enter)
out[1] := {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
in[2] := Sin[xx]
out[2] := {Sin[1], Sin[2], Sin[3], Sin[4], Sin[5], Sin[6], Sin[7], Sin[8], Sin[9], Sin[10]}
in[3] := Table[{xx[[ix]], yy[[ix]]}, {ix, 1, Length[xx]}] // TableForm
out[3]//TableForm :=
1 Sin[1]
2 Sin[2]
3 Sin[3]
4 Sin[4]
5 Sin[5]
6 Sin[6]
7 Sin[7]
8 Sin[8]
9 Sin[9]
10 Sin[10]
in[4] := ListPlot[Table[{xx[[ix]], yy[[ix]]}, {ix, 1, Length[xx]}], Joined -> True, Mesh -> All]
out[4] :=
image.png
这样就在Mathematica里面画出了散点图
另一个方法是把Table换成Transpose
ListPlot[Transpose[{xx,yy}], Joined -> True, Mesh -> All]