微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

排除 LightGraphs 中未连接的节点

如何解决排除 LightGraphs 中未连接的节点

我通过随机抽奖生成一个网络。现在,当我通过 LightGraphs.jl 绘制网络时,我也得到了未连接的节点:

但是,我希望从图中排除这些节点。这可能吗?

解决方法

是的,使用 getindexinduced_subgraph 函数(我假设您想排除 0 度节点):

julia> Random.seed!(123);

julia> g = erdos_renyi(10,0.1)
{10,7} undirected simple Int64 graph

julia> degree(g)
10-element Vector{Int64}:
 1
 4
 1
 1
 1
 2
 0
 2
 2
 0

julia> sg = g[findall(>(0),degree(g))]
{8,7} undirected simple Int64 graph

julia> degree(sg)
8-element Vector{Int64}:
 1
 4
 1
 1
 1
 2
 2
 2

julia> sg2 = induced_subgraph(g,findall(>(0),degree(g)))
({8,7} undirected simple Int64 graph,[1,2,3,4,5,6,8,9])

julia> sg2[1] == sg
true

induced_sugraph 的好处是它还返回一个将新顶点映射到旧顶点的向量。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。