我正在建立一个化学反应A+B<->C+D的平衡模拟,我想在每个滴答之后计算C_D/A_B (海龟数),并把这个值加到变量中,除以运行的蜱数,得到平均值,然后绘制运行平均值。我可以使用界面屏幕上的Monitor按钮进行计算,但是我想要绘制一个静态值和平均值。如何在Net徽标中执行计算并存储值?
发布于 2020-06-21 11:27:04
只要您想要内存(即访问以前的值),那么最简单的方法就是使用变量来存储值。您可以将整个系列存储为一个列表。让我们称这个变量为“平衡”。
在代码的顶部,您需要:
globals [equilibrium]告诉NetLogo变量存在。在您的设置中,您应该让NetLogo知道这将是一个列表,使用:
set equilibrium []然后,当您计算时,您可以使用类似这样的内容(如果您想要的话,可以将当前值存储在列表的前面):
let calc count C * count D / (count A * count B)
set equilibrium fput calc equilibrium可以在mean中找到平均值,就像任何列表一样。将它放在列表前面的优点是,它总是用于情节的item 0。
在这种情况下,因为你只想要平均值,所以你不需要整个列表。您只需为总数(例如cum-calc)创建一个变量,并将当前值添加到每个滴答中:
set cum-calc cum-calc + calchttps://stackoverflow.com/questions/62491698
复制相似问题