如何解决如何在 NetLogo 中创建全局变量来监控特定的海龟品种?
我正在使用 NetLogo 创建疾病传播的年龄结构模型。我有多个海龟品种 - 例如 [persons1 person1]
、[persons2 person2]
等 - 其中它们的疾病状态由代理变量 state
描述(例如,state 1
易感、state 2
被感染、state 3
住院等)。每个品种的感染率不同,因此我创建了一个全局变量 hospitalizations
,我用它来监控在每个时间步从感染转变为住院的海龟数量。例如:
ask turtles [
state 2
if random_float 1 < lambda [
set state 3
set hospitalizations hospitalizations + 1
]
]
但是,我想为每个品种创建 hospitalizations
的不同全局变量,以监控每个品种中过渡到住院的人数 - 例如,hospitalizations1
的 persons1
, hospitalizations2
用于 persons 2
等。与其为每个品种复制上面的代码行 [例如,ask persons1
...set hospitalizations1 hospitalizations1 + 1
],还有另一种方法吗?这不修改ask turtles
?例如,类似于:set hospitalizations1 hospitalizations1 + 1 if persons1 = TRUE
?
任何建议将不胜感激。谢谢。
解决方法
我假设您的品种(persons1 和persons2)具有称为state 的海龟属性,并且只要住院,该状态就会保持在状态3。如果是这样,那么我认为您甚至不需要全局变量 hospitalizations
。相反,您可以像这样使用 count command 监控所有海龟或特定品种:
;to count all breed
count turtles with [state = 3]
;counting specific breed
count persons1 with [state = 3]
count persons2 with [state = 3]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。