从列表中的项目访问值
Accessing values from items in a list
我正在研究土地使用模型,其中每个刻度代表 3 'real-life' 个月。我想计算一整年的森林砍伐率,并将此信息提供给某些代理人。我将森林砍伐定义为去年森林范围的自然对数除以今年的森林范围乘以 100。目前,我按季度计算森林砍伐,如下所示:
to go
set forest-extent-last-tick count patches with [land-cover = "forest"]
;agents carrying out all their actions, including deforestation
set forest-extent count patches with [land-cover = "forest"]
end
然后我使用 forest-extent 和 forest-extent-last-tick 来计算该 tick 的森林砍伐率。为了计算每年的森林砍伐率,我想我需要构成当年的四个刻度和构成前一年的四个刻度的森林范围。
我认为解决方案可能涉及一个列表,我使用 fput 命令在每个刻度中输入最新的森林范围。这样,列表的第 0 - 3 项将代表当年,而第 4 - 7 项将代表上一年。 我的问题是,我是否可以将这些项目从列表中拉到另一个 command/calculation? 我在想这样的事情:
Set deforestation-rate ((sum deforestation-list item 4 item 5 item 6 item 7) / (sum deforestation-list item 0 item 1 item 2 item 3))
此外,如果有不同的方法来实现相同的结果,那对我来说也完全有效。
这是正确的想法。 item
有不同的语法,但无论如何我认为 sublist
是你想要的。
Set deforestation-rate ((sum sublist deforestation-list 4 8) / (sum sublist deforestation-list 0 4))
sublist
将列表、起始项(包括)和结束项(不包括)作为参数,因此 sublist mylist 4 8
将第 4、5、6 和 7 项作为参数,并将它们放入一个列表,您可以对其进行总结。
我正在研究土地使用模型,其中每个刻度代表 3 'real-life' 个月。我想计算一整年的森林砍伐率,并将此信息提供给某些代理人。我将森林砍伐定义为去年森林范围的自然对数除以今年的森林范围乘以 100。目前,我按季度计算森林砍伐,如下所示:
to go
set forest-extent-last-tick count patches with [land-cover = "forest"]
;agents carrying out all their actions, including deforestation
set forest-extent count patches with [land-cover = "forest"]
end
然后我使用 forest-extent 和 forest-extent-last-tick 来计算该 tick 的森林砍伐率。为了计算每年的森林砍伐率,我想我需要构成当年的四个刻度和构成前一年的四个刻度的森林范围。
我认为解决方案可能涉及一个列表,我使用 fput 命令在每个刻度中输入最新的森林范围。这样,列表的第 0 - 3 项将代表当年,而第 4 - 7 项将代表上一年。 我的问题是,我是否可以将这些项目从列表中拉到另一个 command/calculation? 我在想这样的事情:
Set deforestation-rate ((sum deforestation-list item 4 item 5 item 6 item 7) / (sum deforestation-list item 0 item 1 item 2 item 3))
此外,如果有不同的方法来实现相同的结果,那对我来说也完全有效。
这是正确的想法。 item
有不同的语法,但无论如何我认为 sublist
是你想要的。
Set deforestation-rate ((sum sublist deforestation-list 4 8) / (sum sublist deforestation-list 0 4))
sublist
将列表、起始项(包括)和结束项(不包括)作为参数,因此 sublist mylist 4 8
将第 4、5、6 和 7 项作为参数,并将它们放入一个列表,您可以对其进行总结。