Netlogo:如何在Netlogo中获取累积值?

时间:2017-10-20 14:53:44

标签: netlogo cumulative-sum integrated

我已经确认the link上的信息。 但是我无法应用这个。 以下是样本模型程序的一部分。 我想积累海龟的数量,但我无法用示例程序累积它。 我可能需要你的建议。谢谢。

globals [num-turtles cumulative-sum average-time number-dead ]
turtles-own [count-up]

to setup
  clear-all
  set num-turtles 5
  reset-ticks
end

to go

  if count turtles < num-turtles
  [ ask patch 0 0
    [ sprout 1
      [ set count-up 0 ]
    ]
  ]

  set cumulative-sum cumulative-sum + 1 ;I would like to calculate the integral value here, but this syntax is not a cumulative value. 
  ask (turtles-on patch 0 0)
    [
      set cumulative-sum count turtles-here
    ]

  set average-time ifelse-value (number-dead = 0)
  [ 0 ][(cumulative-sum) / (number-dead)]

  if (count turtles > 0) [
    ask min-one-of turtles [who] [
      if count-up >= 6 [
        set number-dead number-dead + 1
        die
      ]
    ]
  ]

  ask (turtles-on patch 0 0)
  [ set count-up count-up + 1
  ]

  tick
end

1 个答案:

答案 0 :(得分:3)

那好多了,谢谢 - 我现在可以运行代码没问题了。但是,我仍然不认为我理解你想要cumulative-sum实际计算的内容。您是否只是在寻找海龟的总数,包括那些仍然存活的海龟和已经死亡的海龟?如果是这样,我认为这只是移动set cumulative-sum cumulative-sum + 1行的问题。例如:

修改

好的,我想我现在从你的评论中了解到。试试这个:

globals [num-turtles cumulative-sum average-time number-dead ]
turtles-own [count-up]

to setup
  clear-all
  set num-turtles 5
  reset-ticks
end

to go

  if count turtles < num-turtles [
    ask patch 0 0 [
      sprout 1 [
        set count-up 0
      ]
    ]
  ] 

  if (count turtles > 0) [
    ask min-one-of turtles [who] [
      if count-up >= 6 [
        set number-dead number-dead + 1
        die
      ]
    ]
  ]

  ask turtles-on patch 0 0 [
    set count-up count-up + 1
  ]

  set cumulative-sum cumulative-sum + count turtles
  set average-time ifelse-value (number-dead = 0) [0]  [(cumulative-sum) / (number-dead)]

  tick
end