NetLogo:死代理人 = 丢失信息?
NetLogo: dead agent = lost information?
我是这个站点和 NetLogo 的新手。
我正在尝试模拟意大利的百日咳流行,我想知道代理人生病时的年龄。
问题是特工会死!!所以我丢失了所有与死特工有关的数据!
有没有办法从死海龟中检索变量的值?
谢谢!
与其用 [die]
命令要求他们真的死,不如用一个变量来表示他们已经死了。您大概有一些东西可以跟踪他们的感染状态(例如易感、感染、康复),因此您可以添加另一种状态(易感、感染、康复、死亡)。然后你可以通过 set VARNAME count turtles with [status = dead]
这样的命令获取信息
根据下面的评论,如果您需要将死海龟排除在交互之外,这可能会使您的其他代码变得困难。所以另一种选择是将其他命令添加到相同的代码区域中,告诉海龟死亡。那些其他命令可以像递增计数器一样简单,但也可以向某些列表添加值。
ask turtles
[ if ... (whatever your test is to see if the turtle dies)
[ set deathcounter deathcounter + 1
die
]
]
如果你想存储死海龟的所有变量,我会创建一个名为 corpse 的新品种,它与你正在死亡的其他品种具有所有相同的变量,当你的品种死亡时将其品种设置为尸体。 ask turtles [set breed corpse]
如果您还没有按状态限制您的 turtle 命令(例如 ask turtles [something]
与 ask turtles with [status = "active"] [something]
相比)
,这是 JenB 解决方案的替代方案
我是这个站点和 NetLogo 的新手。 我正在尝试模拟意大利的百日咳流行,我想知道代理人生病时的年龄。
问题是特工会死!!所以我丢失了所有与死特工有关的数据!
有没有办法从死海龟中检索变量的值?
谢谢!
与其用 [die]
命令要求他们真的死,不如用一个变量来表示他们已经死了。您大概有一些东西可以跟踪他们的感染状态(例如易感、感染、康复),因此您可以添加另一种状态(易感、感染、康复、死亡)。然后你可以通过 set VARNAME count turtles with [status = dead]
根据下面的评论,如果您需要将死海龟排除在交互之外,这可能会使您的其他代码变得困难。所以另一种选择是将其他命令添加到相同的代码区域中,告诉海龟死亡。那些其他命令可以像递增计数器一样简单,但也可以向某些列表添加值。
ask turtles
[ if ... (whatever your test is to see if the turtle dies)
[ set deathcounter deathcounter + 1
die
]
]
如果你想存储死海龟的所有变量,我会创建一个名为 corpse 的新品种,它与你正在死亡的其他品种具有所有相同的变量,当你的品种死亡时将其品种设置为尸体。 ask turtles [set breed corpse]
如果您还没有按状态限制您的 turtle 命令(例如 ask turtles [something]
与 ask turtles with [status = "active"] [something]
相比)