MetaGraphs加载并保存

A.Y*_*iha 4 io metadata julia lightgraphs

如何从LightGraphs和MetaGraphs中保存和加载MetaGraph对象,以便在加载元图时仍具有元数据?现在我有一个mg使用以下方式保存的元数据:

LightGraphs.savegraph("net.lg", mg)
Run Code Online (Sandbox Code Playgroud)

但是尝试重新加载它:

reloaded = LightGraphs.loadgraph("net.lg")
Run Code Online (Sandbox Code Playgroud)

给我以下内容:

BoundsError: attempt to access 2-element Array{SubString{String},1} at index [3]
Run Code Online (Sandbox Code Playgroud)

无论如何,在MetaGaphs软件包中的元数据中有待阅读吗?

sbr*_*ger 5

我们使用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
Run Code Online (Sandbox Code Playgroud)

请注意,您需要指定MGFormat()loadgraph,否则LightGraphs不会知道你要什么样的负载类型的图形。