io - MetaGraphs 加载和保存
问题描述
如何从 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 包中的元图?
解决方案
我们使用 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 将不知道您要加载的图形类型。
推荐阅读
- ios - 如何通知从一个类到多个 ViewControllers 的更改?
- c - C 随机整数生成器问题(A book on C 4th Edition)
- javascript - 奇怪的 html 或 css 或 javascript 或任何网页小部件
- html - 尽管进行了形状渲染,但 SVG 线条不一致
- php - 在 while 循环中添加到关联数组
- flutter - 声明同一类的多个对象?
- c# - WPF多个对话框,可见性属性问题
- javascript - 如何将原型函数传递给我的对象而不需要调用它?
- android - 跟踪 Android 应用性能的 API 方法
- database - Github 上公开可见的数据库密码是个问题?