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