哥斯拉_dj 发表于 2009-5-12 09:47:35

请问如何按patch的某一个变量对其进行排序?万分感谢!

请教大家一个问题:
每个patch有两个变量,每个patch的wealth都不相同,我想按照wealth的大小对patch进行排名,然后在rank里表示出来,也就是说如果patch的wealth最大,它的rank就为1,wealth第二大rank就为2,依次类推!
请问大家如果实现!
非常感谢!

jackronkrick 发表于 2009-7-14 15:26:09

patches-own
..........
..........
ask patches of myself]]

cadinggogo 发表于 2009-7-19 00:09:25

思路:这是一个排序算法问题,关于排序有很多经典算法,如冒泡法等等,建议参照其它语言如C对算法的描述,用netlogo语句实现,在排序的同时给rank赋值。不知道这样的回答对您有否帮助。祝好

mengye02 发表于 2010-5-11 13:19:52

用list吧
patches-own
to setup
ca
ask patches
end

to go
let mylist1 []
set mylist1 sort-by [ of ?1 < of ?2] patches
let mylist2 []
set mylist2 n-values count patches [? + 1]

( foreachmylist1 mylist2
    [
      ask ?1[ set rank ?2]
      show of ?1
      
      ]
      )
let mylist3 []

set mylist3 sort-by [ of ?1 < of ?2] patches
      show count patches
show mylist1
show mylist3
end

这时的mylist1 和mylist3 应该是一样的
页: [1]
查看完整版本: 请问如何按patch的某一个变量对其进行排序?万分感谢!