为Netlogo中的每个节点分配不同的值

时间:2013-11-18 04:35:42

标签: graph nodes netlogo

我是这种语言的新手,我想创建一个图表,到目前为止我已经完成了非常基本的结构(节点)。我想为每个节点分配一个不同的值,这个值应该从列表中获取(如[1 2 3 4]),这个列表应该自动生成。

我在其他地方读过这个命令[n-values <number> [self]]但我真的不明白[self]代表什么。我希望我的程序要做的是创建n个节点(n取自滑块值),然后分别为每个节点分配值(1 2 3 4 5 ... n)。

到目前为止我的代码:

breed [nodes node] ;;Hacemos 'especies'(Clases) de tortugas, el objeto nodes será de una especie node. 
nodes-own [info]
to setup
  ca ;clear all shortage
  ask patches [set pcolor white] ;;hacemos todas las parcelas blancas
  create-nodes num-nodes [ ;creamos tantos nodos como el slider diga
    set shape "circle" ;con forma de circulo
    setxy random-pxcor random-pycor ;;en cualquier lugar.
  ]
  ask nodes [set info 9] ;;<<<ALL nodes have value 9 I'd like to change this!!!
  reset-ticks
end
to layout
  layout-spring nodes links .5 .5 .5
end

感谢您的建议!

另外:有更好的制作图表的方法吗? (我打算使用流量网络!)

1 个答案:

答案 0 :(得分:2)

我不确定您为什么需要n-value <number> self

N值的作用是在括号中重复记者n次,例如:如果你:

ask nodes [print n-values info [self]]

每个节点将打印自己的名称,例如(节点1)信息时间。

最佳起点是NetLogo模型库示例,有大量示例使用节点和链接来显示小世界,团队装配,病毒网络等...

http://ccl.northwestern.edu/netlogo/models/

或仅从netlogo选择文件/模型库

这是您的代码,只需进行一些更改,通过添加列表来选择信息的值,但是,如果您认为应该将信息分配给链接而不是节点,则可以将其添加到链接自己的

breed [nodes node] ;;Hacemos 'especies'(Clases) de tortugas, el objeto nodes será de una especie node. 
nodes-own [info]
globals
[My-Num-List]

links-own [msg]
to setup
  ca ;clear all shortage
  ask patches [set pcolor white] ;;hacemos todas las parcelas blancas
  set My-Num-List [ 1 2 3 4 5 6 7 8 9 10] ; or any other list you need

  create-nodes num-of-nodes [ ;creamos tantos nodos como el slider diga
    set shape "circle" ;con forma de circulo
    setxy random-pxcor random-pycor ;;en cualquier lugar
    set label-color black
    set info one-of My-Num-List
    set label info
  ]

   ;;<<<ALL nodes have value 9 I'd like to change this!!!
  reset-ticks
end
to layout
  crtlinks
  layout-spring nodes links .5 .5 .5
end




to crtlinks
  ask turtles  
  [
    create-links-with n-of 2 other turtles 
    [
      set msg one-of [ "C" "A" "B"]
      set label msg
      set label-color black
      set thickness 0.2
    ]
  ]