Pergunta

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!

Foi útil?

Solução

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 (or ca) are automatically changed to __clear-all-and-reset-ticks, which combines the effects of clear-all and reset-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 with clear-all, and put reset-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.

Outras dicas

Nevermind got it. In the new Netlogo versions it appears you have to use CLEAR-ALL at the beginning of setup and RESET-TICKS at the end of setup instead of using __CLEAR-ALL-AND-RESET-TICKS at the beginning of setup. Otherwise plotting won't work as expected.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top