我希望有人能帮我提供一个洞察我的问题?
我正在开展一个模拟小镇道路网络的学术项目。为简单起见,我的道路网络是一个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)。
最终目标是能够搜索图表并遍历它。
感谢任何建议/指导。如果我需要提供更多信息,请告知我们。
提前致谢
答案 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)
我希望这能回答你的问题。