我们可以编写代码来计算netlogo中刻度值的差异吗

我们可以编写代码来计算netlogo中刻度值的差异吗,netlogo,Netlogo,实际上,我需要为我的模型计算人口密度增加/减少率,该模型与我在中所问的相同(一个特定区域和其中的一座建筑,人们随机访问和前往)。我认为我将需要保存初始总体值的刻度值,并在一段时间差后更新总体值。下面是我要绘制图形的步骤 to density-increase-rate store population-density at some initial time (ticks) store updated-population-density at some later-time (tic

实际上,我需要为我的模型计算人口密度增加/减少率,该模型与我在中所问的相同(一个特定区域和其中的一座建筑,人们随机访问和前往)。我认为我将需要保存初始总体值的刻度值,并在一段时间差后更新总体值。下面是我要绘制图形的步骤

to density-increase-rate

  store population-density at some initial time (ticks)
  store updated-population-density at some later-time (ticks)

  calculate density-increase-rate

   ( ( ( updated-pd - previous-pd ) / (updated-tick - previous-tick ) ) * 100   ) / 10

  end
我在我的代码中计算人口密度

total-density-inside-boundary count people with [inside-boundary?]

对于任何建议或代码帮助,我非常感谢。

如果您只想绘制此更改,则无需存储它,因为绘图将更新每个勾号

globals [total-density-inside-boundary density-increase-rate]

to calc-plot-vars
  let old-density total-density-inside-boundary
  set total-density-inside-boundary count people with [inside-boundary?]
  set density-increase-rate (total-density-inside-boundary - old-density) / 100
end
然后在界面上绘制一个图,该界面具有
绘制边界内总密度
绘制密度增加率
。您可能需要进行一些重缩放,使它们位于同一个绘图上

如果希望速率基于总时间,则创建一个变量来保存初始值,并在您认为初始值意味着的特定时间(例如设置结束或特定刻度)计算它


然后在界面中绘制速率图,绘制(边界内总密度-初始密度)/100

谢谢,先生。我理解了代码的第二部分,即计算速率和绘制速率。因为我知道的计算密度率的公式是(更新密度-初始密度/持续时间)*100,所以我一直在讨论如何计算时间差的持续时间部分(比如100个刻度-10个刻度)。你说的第一部分让旧密度边界内总密度设置边界内总密度计数[inside boundary?]在这里,局部变量“old density”的值是否会保持不变,即使边界内总密度的值得到更新?否,old density将改变每个刻度,因此第一个版本将给出一个刻度和下一个刻度之间的变化。如果您希望绘图是某个任意刻度的平均速率(如开始)直到“现在”,然后使用第二个版本。先生,对于平均速率,我也得到(-)ve值。我的模型在1000个刻度处停止,我取初始刻度值200(而不是刻度=1)。因此,一段时间后,它给出(-)ve值。但我认为这是错误的。看看边界内总密度的图。滴答=200后它会减小吗?如果是,速率实际上是负数,而不是错误。
globals [total-density-inside-boundary initial-density]

to setup
  ... (commands that create your people)
  set initial-density count people with [inside-boundary?]
  ...
end

to go
  ...
  if ticks = 1 [ set initial-density count people with [inside-boundary?] ]
  ...
end