2015-11-05 82 views
1

中的指示处理的无向图我通过读取GML文件创建了一个图。我试图找到所有触摸节点N的边缘我的代码如下:按照igraph-python

self.simGraph = Graph.Read_GML(file_name) 
node = self.simGraph.vs.find(title=title) 
edge_set = self.simGraph.es.select(_source=node.index) 

我注意到,在调试时,那edge_set常常只包含一个边缘,但是当我改变_source_target,我会得到一组不同的边缘。我试过加入

self.simGraph = self.simGraph.as_undirected() 

但是得到了同样的结果。

我错过了什么吗?

+0

'source'和'target'没有任何意义(至少不会IGRAPH)时是无向图因为每个边的每个端点同时是源和目标。这将最终得到修复;随时在Github上跟随相应的[bug报告](https://github.com/igraph/python-igraph/issues/30)。 –

+0

权利,来源和目标*不应该是有道理的,这就是为什么我很困惑会得到不同的结果。感谢指向错误报告的指针。 – betseyb

回答

3

当您将当前顶点用作“源”或“目标”时,您可能会获得不同的边集。看起来igraph将“源”和“目标”角色随机分配给无向网络的顶点,但它知道网络是无向的。即使您从头开始生成无向网络,将顶点设置为源或目标时,连接到顶点的边集也会有所不同。如果你想获得的边缘(编号的)名单入射AO顶点i,使用下列

g.incident(i)