2017-06-02 1 views
2

Je construis une simulation des cellules épidermiques dans NetLogo. J'ai deux types de cellules, des progéniteurs et des cellules post mitotiques. Les progéniteurs sont les cellules qui peuvent se diviser en progéniteur ou post mitotique. Chaque série commence avec un nombre de 239 cellules progénitrices avec chacune leur propre identité (de 1 à 239) qui est propre à la tortue. Chaque fois qu'un progéniteur se divise, l'identité est donnée à la progéniture.Nombre de différentes valeurs d'une variable dans NetLogo

Je veux compter le nombre de différentes identités après une certaine quantité de ticks. Je l'ai essayé avec un moniteur et avec une liste mais ça n'a pas marché.

Voici une petite partie du code que je l'ai fait:

turtles-own [ identity] 
globals [ id-count] 

to setup 
ask patches [sprout-postmitotic 1] 

ask n-of ((22/100) * count postmitotic) patches [ 

ask postmitotic-here [ 
hatch-progenitor 1 
[ 
    set identity id-count 
    set id-count id-count + 1 ] 
    die ] 
] 
end 


to go 
ask progenitor[ 
if random-float 1 < l [ 
     hatch-postmitotic 1 
    ] 
end 

Répondre

3

Si vous publiez code pour une question comme cela, essayez de produire un exemple minimal pour soutenir la question. Voici deux approches. (La première illustre l'utilisation de table:counts, qui donne accès à plus d'informations.)

extensions [table] 
turtles-own [identity] 
to setup 
    ca 
    crt 1000 [set identity random 1000] 
end 
to-report id-count-01 
    let _idcts table:counts [identity] of turtles 
    let _unique table:keys _idcts 
    report length _unique 
end 

to-report id-count-02 
    let _unique remove-duplicates [identity] of turtles 
    report length _unique 
end 
+0

Merci, cela a été très utile! C'est exactement ce dont j'avais besoin! – Mee