MetaGraphs加载并保存

时间:2018-05-07 11:50:26

标签: io metadata julia lightgraphs

如何从LightGraphs和MetaGraphs中保存和加载MetaGraph对象,这样如果我加载元图我还有元数据? 现在我有一个使用以下方法保存的元图mg

LightGraphs.savegraph("net.lg", mg)

但是试图重装它:

reloaded = LightGraphs.loadgraph("net.lg")

给我以下内容:

BoundsError: attempt to access 2-element Array{SubString{String},1} at index [3]

无论如何都要阅读MetaGaphs包中的元图吗?

1 个答案:

答案 0 :(得分:4)

我们使用JLD2.jl提供的JLD格式支持MetaGraphs持久性:

using LightGraphs, MetaGraphs
julia> g = Graph(10,20)
{10, 20} undirected simple Int64 graph

julia> mg = MetaGraph(g)
{10, 20} undirected Int64 metagraph with Float64 weights defined by :weight (default weight 1.0)

julia> savegraph("foo.mg", mg)
1

julia> mg2 = loadgraph("foo.mg", MGFormat())
{10, 20} undirected Int64 metagraph with Float64 weights defined by :weight (default weight 1.0)

julia> mg2 == mg
true

请注意,您需要在MGFormat()中指定loadgraph,否则LightGraphs将无法知道您尝试加载的图表类型。