NetLogo:nw:节点的保存矩阵排序

时间:2015-03-19 18:38:20

标签: r social-networking netlogo

我使用网络扩展在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?

中的连通矩阵

最佳,

1 个答案:

答案 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

我没有机会测试这个,但它应该可以解决这个问题。

使用更正的代码进行测试和更新。