使用nw:load graphml导入netlogo中的链接品种
导入graphml文件时,如何让NetLogo识别链接种类 我在graphml文件中指定了品种属性,并在NetLogo中命名了品种。当使用使用nw:load graphml导入netlogo中的链接品种,netlogo,graphml,Netlogo,Graphml,导入graphml文件时,如何让NetLogo识别链接种类 我在graphml文件中指定了品种属性,并在NetLogo中命名了品种。当使用nw:load graphml导入NetLogo时,我认为NetLogo应该通过读取graphml文件中的breed属性将breed分配给链接。如中所述: …nw:load graphml将尝试将graphml文件中定义的属性值分配给同名的NetLogo代理变量(不区分大小写)。它尝试设置的第一个变量是品种,如果它在那里,那么海龟或链接将获得正确的品种,从而获
nw:load graphml
导入NetLogo时,我认为NetLogo应该通过读取graphml文件中的breed
属性将breed
分配给链接。如中所述:
…nw:load graphml
将尝试将graphml文件中定义的属性值分配给同名的NetLogo代理变量(不区分大小写)。它尝试设置的第一个变量是品种
,如果它在那里,那么海龟或链接将获得正确的品种,从而获得正确的品种变量
但是,尽管在NetLogo和graphml文件中指定了链接品种,链接在导入时仍被指定为通用“链接”品种
示例graphml文件:
<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
<key id="v_name" for="node" attr.name="name" attr.type="string"/>
<key id="e_breed" for="edge" attr.name="breed" attr.type="string"/>
<graph id="G" edgedefault="undirected">
<node id="n0">
<data key="v_name">1</data>
</node>
<node id="n1">
<data key="v_name">2</data>
</node>
<node id="n2">
<data key="v_name">3</data>
</node>
<node id="n3">
<data key="v_name">4</data>
</node>
<node id="n4">
<data key="v_name">5</data>
</node>
<edge source="n1" target="n2">
<data key="e_breed">ftf-tie</data>
</edge>
<edge source="n0" target="n3">
<data key="e_breed">ftf-tie</data>
</edge>
<edge source="n0" target="n4">
<data key="e_breed">ftf-tie</data>
</edge>
<edge source="n1" target="n4">
<data key="e_breed">ftf-tie</data>
</edge>
<edge source="n1" target="n4">
<data key="e_breed">sns-tie</data>
</edge>
</graph>
</graphml>
谢谢大家! 在图形文件中从单数品种更改为复数品种(例如,从ftf-tie
更改为ftf-tie
)完全解决了这个问题
请参阅:您的链接品种是否具有相同数量的变量?您可以使用语句设置品种
来更改品种,但如果品种具有不同的变量集,则这不会有帮助。您可能需要做一些丑陋的事情,比如读取通用链接的图形,并使用变量“var1”、“var2”。阅读后,您可以同时更改品种和属性变量。@JenB谢天谢地,所有链接品种都有相同的变量!我无法读入无种子链接,然后设置繁殖,因为NetLogo不允许在同一个世界中有种子链接和无种子链接。我遗漏了什么吗?更新:在文件中从单数品种更改为复数品种(例如,从ftf-tie
到ftf-tie
)解决了这个问题。见:
extensions [ nw ]
undirected-link-breed [ ftf-ties ftf-tie ]
undirected-link-breed [ sns-ties sns-tie ]
to setup
clear-all
nw:load-graphml "test.graphml"
repeat 30 [ layout-spring turtles links 0.2 5 1 ]
end