Netlogo 将向量归因于链接

Netlogo 将向量归因于链接,netlogo,Netlogo,我想为每个(无向)链接启动两个一维数组array1和array2。在每次勾选时,如果其中一个端点满足条件1?当另一个满足条件2?时,将生成一个随机数,并将随机数和当前记号分别保存到array1和array2中。我希望随着程序的运行,两个数组的长度都会增加 如何为每个链接启动这样一个数组,以及如何在检查其端点条件时更新它 现在,我使用以下方法设置链接和海龟 turtles-own[ condition1? condition2? ] links-own [ array1

我想为每个(无向)链接启动两个一维数组array1和array2。在每次勾选时,如果其中一个端点满足条件1?当另一个满足条件2?时,将生成一个随机数,并将随机数和当前记号分别保存到array1和array2中。我希望随着程序的运行,两个数组的长度都会增加

如何为每个链接启动这样一个数组,以及如何在检查其端点条件时更新它

现在,我使用以下方法设置链接和海龟

turtles-own[
   condition1?
   condition2?
]

links-own [
   array1
   array2
]

to set-up[
   clear-all
   reset-ticks
   make-turtles
   make-nodes ;; creates the nodes
   ask turtles [
      set condition1? true
      set condition2? true 
  ] 
  ask links [
      set array1 []
      set array2 []
  ]
]
go命令包含一个例程,用于更改condition1?的值?条件2?,虽然这不是我的问题

要更新阵列,我考虑:

let prob 0
ask turtles[
   ask link-neighbors
   set prob random-float 100
   ;; I don't know what to put here.
   ;; If one of the endpoint satisfies condition1? while the other
   ;; satisfies condition 2, I want prob to be appended to array1
   ;; and the current tick appended to array2
   ]
 ]

也许一个询问链接的例程会起作用?

是像
询问链接
还是
询问海龟
取决于array1和array2的意义有多大。从海龟的角度出发意味着你可以让“我”测试条件1,让“另一个”测试条件2。但是一旦你到达海龟,通过海龟的链接(
我的链接
)比通过海龟的另一端(
链接邻居
)更容易

创建阵列的方式(如果要查看字典中的可用命令,请使用NetLogo术语列表)很好

这里有一个选项,使用
fput
,它在列表的前面(前面的put)有最近的测试。未测试,因此可能存在语法错误

ask turtles
[ ask my-links
  if [condition1?] of myself and [condition2?] of other-end
  [ set array1 fput random 100 array1
    set array2 fput ticks array2
  ]
]

您可能想考虑使用定向链接,这样ARARY1和ARARY2不包含两个方向的元素。如果是,请使用

我的输出链接