我使用网络扩展在NetLogo 5.1中生成不同类型的网络。
我使用 nw:save-matrix 存储网络的未加权连接矩阵,然后加载到R中以执行更高级的计算。
在这个矩阵中,我想知道哪条线/列与哪只乌龟对应。我首先认为订单只是[who]的增加顺序(即矩阵的行/列1将简单地对应于具有最低ID的乌龟)。不幸的是,情况似乎并非如此。
我为 nw:set-context 尝试了不同的规范,旨在对网络环境中的海龟进行排序。例如:
nw:set-context(turtle-set sort turtles))(链接集排序链接)
nw:set-context(turtle-set map [turtle?](排序[who] of turtles)) (链接集排序链接)
我甚至通过[who]:
明确指定了每只乌龟nw:set-context(turtle-set(龟80)(龟117)(龟140)(龟153)......
但这些尝试都没有成功......我也注意到订单不是随机的。例如,我知道具有最高度数的节点是海龟80,但由 nw:save-matrix 产生的矩阵始终对应于第766行/列。
这也是链接排序的问题吗?关于 nw:save-matrix 如何实际工作的任何想法?我应该使用其他策略来获得这个"命令" R?
中的连通矩阵最佳,
答案 0 :(得分:1)
目前,没有一致的订购。但是,这不是故意的。我为它创建了一个错误:https://github.com/NetLogo/NW-Extension/issues/151
作为一种解决方法,您可以非常轻松地自己生成矩阵文件。像这样的东西会做到这一点,虽然它包括所有的链接和乌龟,而不仅仅是上下文中的那些。如果你使用有限的背景,不应该太难调整:
to save-matrix [ filename ]
if file-exists? filename [ file-delete filename ]
file-open filename
let turtle-list sort turtles
foreach turtle-list [
let source ?
foreach turtle-list [
let target ?
ifelse [ link-neighbor? target ] of source [
file-type "1 "
] [
file-type "0 "
]
]
file-print ""
]
file-close
end
我没有机会测试这个,但它应该可以解决这个问题。
使用更正的代码进行测试和更新。