Mathematica的绘图问题

在做关于传感器节点两两之间连通的问题。
已经设置好20个节点的坐标,用x[i]数组和y[i]数组保存相应的坐标值,
也计算出了两节点[i,j]之间连通与否的邻接矩阵a[i,j]
如果i节点与j节点连通,则a[i,j]=1,否则a[i,j]=0。

现在想要把这个网络画出来,要求如下:
1.20个节点都要在图里显示出来;
2.节点两两之间如果连通,用线连起来,否则不连;
3.要在一张图里呈现出来;

我本来是打算用循环先判断,a[i,j]==1?
如果是,调用ListLinePlot画线,如果不是就不画线
但是Mathematica这个软件没有Matlab中类似Hold on 的画图语句,
不能让这些线呈现在一张图中,Show也不适用,请问该怎么办?

附:程序
n = 20
For[i = 1, i <= n, i++,
{x[i] = RandomReal[100], y[i] = RandomReal[100]}]
(*建立邻接矩阵*)
For[i = 1, i <= n, i++,
For[j = 1, j <= n, j++,
{d[i, j] = Sqrt[(y[j] - y[i])^2 + (x[j] - x[i])^2],
If[d[i, j] <= r, m[i, j] = 1, m[i, j] = 0]}
]
]
a = Array[m, {n, n}]
px = Array[x, {20}]
py = Array[y, {20}]
ListPlot[Table[px, py]]

For[i = 1, i < n, i++,
For[j = 1, j < n, j++,
If[a3[[i, j]] == 1, Show[ListLinePlot[{{x[i], y[i]}, {x[j], y[j]}}]]]
]
]

可以用Graphics[Line[{点1,点2}](* 要联通的两点 *),Line[{点3,点4}],...]去弄
先把要连接的点配对好,得到列表m
m={{点1,点2},{点3,点4}...}
然后
Graphics[Map[Line,m]]
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答