如何使用Matlab从Matrix绘制网络图

时间:2015-08-03 11:52:40

标签: matlab networking matrix graph

我希望有人能帮我提供一个洞察我的问题?

我正在开展一个模拟小镇道路网络的学术项目。为简单起见,我的道路网络是一个nxn矩阵(例如下面的9x9矩阵A)......

matrixA =
a1    b2    c3    d4    e5    f6    g7    h8    i9
a2    b0    c0    d0    e5    f0    g0    h0    i9
a3    b0    c0    d0    e5    f0    g0    h0    i9
a4    b0    c0    d0    e5    f0    g0    h0    i9
a5    b5    c5    d5    e5    f5    g5    h5    i9
a6    b0    c0    d0    e5    f0    g0    h0    i9
a7    b0    c0    d0    e5    f0    g0    h0    i9
a8    b0    c0    d0    e5    f0    g0    h0    i9
a9    b9    c9    d9    e9    f9    g9    h9    i9

我的目标是从上面的矩阵生成一个图表,其中包含以下属性: 所有非零元素都是图中的顶点,并且自上而下和侧向连接(连接器将是有向边),只要存在非零元素。例如,元素a1连接到b2; b2连接到c3;并且c3连接到d4等.a1连接到a2; a2到a3; a3到a4;和a4到a5。随后,a5连接到nothwords,向南和向右(即a5连接到a4,b5和a6)。

最终目标是能够搜索图表并遍历它。

感谢任何建议/指导。如果我需要提供更多信息,请告知我们。

提前致谢

1 个答案:

答案 0 :(得分:0)

您可能希望尝试更多地处理矩阵。如果要为每个矩阵条目使用索引值(a1 = 1,b2 = 2等),则可以生成表示图形的稀疏矩阵。

您的上述示例将导致图形如下所示(在Matlab的稀疏方法中):

(1,2)  1
(1,10) 1
(2,3)  1
(3,4)  1
(4,5)  1
(5,6)  1
(5,14) 1
.
.
.
(10,19) 1
(14,23) 1
.
.
.

为简单起见,我假设所有边缘都有值1.这当然取决于你。

生成此类稀疏矩阵(G)后,您可以使用以下命令显示它

h = view(biograph(G,[],'ShowWeights','on'))

然后还有许多其他方法可以与以这种方式设置的图形一起使用,例如,最大流量分析(http://ch.mathworks.com/help/bioinfo/ref/graphmaxflow.html

我希望这能回答你的问题。