I'm fairly new to Netlogo and I'm trying to do a plot for my model. I want to plot the average of links with respect to turtles (count links) / (count turtles).
When I click on setup for the model though this message appears
Division by zero. error while observer running / called by plot 'Promedio conexiones para cada agente' pen 'Prom. Conex.' update code called by __CLEAR-ALL-AND-RESET-TICKS called by procedure SETUP called by Button 'setup'
It seems during setup it counts 0 turtles even though setup creates 5 turtles initially. But it apparently trie to plot something before setup finishes. Any ideas why this is happening. I put my code on the update field and nothing on the setup field.
Thanks!
The answer given by Atirag to his own question is correct, but here is a bit more context from the NetLogo transition guide:
In order for models from previous NetLogo versions to work in 5.0 without changes, when an old model is opened in 5.0, any occurrences of
clear-all
(orca
) are automatically changed to__clear-all-and-reset-ticks
, which combines the effects ofclear-all
andreset-ticks
. The two underscores on the name indicate that this is not a normal primitive, but exists only for backwards compatibility.You should remove
__clear-all-and-reset-ticks
from your code, replace it withclear-all
, and putreset-ticks
at the end of your setup procedure.
The bottom line is that the "reset-ticks
" part of __clear-all-and-reset-ticks
actually tries to update the plots (just like the proper reset-ticks
primitive). If you call it at the beginning of setup
, your turtles won't be created when the plots update and something like (count links) / (count turtles)
will, indeed, trigger a division by zero.
Side note: calling __clear-all-and-reset-ticks
at the end of the setup procedure would not help either, since it would clear your turtles, which is not what you want. This primitive should basically never be used in NetLogo >= 5.0.