在NetLogo中组合和格式化列表
我有一个名为“coords”的点对列表(在NetLogo坐标中),如下所示:在NetLogo中组合和格式化列表,netlogo,Netlogo,我有一个名为“coords”的点对列表(在NetLogo坐标中),如下所示: [[[255 97] [256 97]] [[-131 408] [-129 407]] [[-125 406] [-122 405]] [[-84 188]] [-83 188]] [[-303 200] [-304 203]] [[25 414] [19 415]] [[-128 256] [-125 254]] .......................................]
[[[255 97] [256 97]]
[[-131 408] [-129 407]]
[[-125 406] [-122 405]]
[[-84 188]] [-83 188]]
[[-303 200] [-304 203]]
[[25 414] [19 415]]
[[-128 256] [-125 254]]
.......................................]
[[[255 97 "S"] [256 97 "S"]]
[[-131 408 "S"] [-129 407 "S"]]
[[-125 406 "U"] [-122 405 "U"]]
[[-84 188 "I"]] [-83 188 "I"]]
[[-303 200 "S"] [-304 203 "S"]]
[[25 414 "I"] [19 415 "I"]]
[[-128 256 "U"] [-125 254"U"]]
.......................................]
[[[[255 97] [256 97]] "S"]
[[[-131 408] [-129 407]] "S"]
[[[-125 406] [-122 405]] "U"]
[[[-84 188]] [-83 188]] "I"]
[[[-303 200] [-304 203]] "S"]
[[[25 414] [19 415]] "I"]
[[[-128 256] [-125 254]] "U"]
.......................................]
to go
let coords [
[ [ 255 97] [ 256 97] ]
[ [-131 408] [-129 407] ]
[ [-125 406] [-122 405] ]
[ [ -84 188] [ -83 188] ]
[ [-303 200] [-304 203] ]
[ [ 25 414] [ 19 415] ]
[ [-128 256] [-125 254] ]
]
let coord_class ["S" "S" "U" "I" "S" "I" "U"]
show add-classes coords coord_class
end
每个点对都有一个与之相关联的分类变量,该变量取值“I”、“U”或“S”中的一个。我有一个单独的分类变量列表,称为“coord_类”,其长度和顺序与上面列出的点对相同
["S" "S" "U" "I" "S" "I" "U" ...]
我想做的是将相应的分类变量附加到点对,方式如下:
[[[255 97] [256 97]]
[[-131 408] [-129 407]]
[[-125 406] [-122 405]]
[[-84 188]] [-83 188]]
[[-303 200] [-304 203]]
[[25 414] [19 415]]
[[-128 256] [-125 254]]
.......................................]
[[[255 97 "S"] [256 97 "S"]]
[[-131 408 "S"] [-129 407 "S"]]
[[-125 406 "U"] [-122 405 "U"]]
[[-84 188 "I"]] [-83 188 "I"]]
[[-303 200 "S"] [-304 203 "S"]]
[[25 414 "I"] [19 415 "I"]]
[[-128 256 "U"] [-125 254"U"]]
.......................................]
[[[[255 97] [256 97]] "S"]
[[[-131 408] [-129 407]] "S"]
[[[-125 406] [-122 405]] "U"]
[[[-84 188]] [-83 188]] "I"]
[[[-303 200] [-304 203]] "S"]
[[[25 414] [19 415]] "I"]
[[[-128 256] [-125 254]] "U"]
.......................................]
to go
let coords [
[ [ 255 97] [ 256 97] ]
[ [-131 408] [-129 407] ]
[ [-125 406] [-122 405] ]
[ [ -84 188] [ -83 188] ]
[ [-303 200] [-304 203] ]
[ [ 25 414] [ 19 415] ]
[ [-128 256] [-125 254] ]
]
let coord_class ["S" "S" "U" "I" "S" "I" "U"]
show add-classes coords coord_class
end
请注意,给定对中的两个点采用相同的分类变量值
我尝试使用map reporter执行此操作:
set coords (map [list ?1 ?2] coords coord_class)
其输出如下所示:
[[[255 97] [256 97]]
[[-131 408] [-129 407]]
[[-125 406] [-122 405]]
[[-84 188]] [-83 188]]
[[-303 200] [-304 203]]
[[25 414] [19 415]]
[[-128 256] [-125 254]]
.......................................]
[[[255 97 "S"] [256 97 "S"]]
[[-131 408 "S"] [-129 407 "S"]]
[[-125 406 "U"] [-122 405 "U"]]
[[-84 188 "I"]] [-83 188 "I"]]
[[-303 200 "S"] [-304 203 "S"]]
[[25 414 "I"] [19 415 "I"]]
[[-128 256 "U"] [-125 254"U"]]
.......................................]
[[[[255 97] [256 97]] "S"]
[[[-131 408] [-129 407]] "S"]
[[[-125 406] [-122 405]] "U"]
[[[-84 188]] [-83 188]] "I"]
[[[-303 200] [-304 203]] "S"]
[[[25 414] [19 415]] "I"]
[[[-128 256] [-125 254]] "U"]
.......................................]
to go
let coords [
[ [ 255 97] [ 256 97] ]
[ [-131 408] [-129 407] ]
[ [-125 406] [-122 405] ]
[ [ -84 188] [ -83 188] ]
[ [-303 200] [-304 203] ]
[ [ 25 414] [ 19 415] ]
[ [-128 256] [-125 254] ]
]
let coord_class ["S" "S" "U" "I" "S" "I" "U"]
show add-classes coords coord_class
end
代码中的其他函数的结构不正确。任何帮助我获得所需输出的建议都将不胜感激。谢谢 您有一个列表列表。执行所需操作需要两个独立的
map
操作。最简单的方法可能是在两个小记者之间分配任务:
to-report add-classes [ coords classes ]
report (map add-class coords classes)
end
to-report add-class [ lists class ]
report map [ lput class ? ] lists
end
然后您可以这样使用它:
[[[255 97] [256 97]]
[[-131 408] [-129 407]]
[[-125 406] [-122 405]]
[[-84 188]] [-83 188]]
[[-303 200] [-304 203]]
[[25 414] [19 415]]
[[-128 256] [-125 254]]
.......................................]
[[[255 97 "S"] [256 97 "S"]]
[[-131 408 "S"] [-129 407 "S"]]
[[-125 406 "U"] [-122 405 "U"]]
[[-84 188 "I"]] [-83 188 "I"]]
[[-303 200 "S"] [-304 203 "S"]]
[[25 414 "I"] [19 415 "I"]]
[[-128 256 "U"] [-125 254"U"]]
.......................................]
[[[[255 97] [256 97]] "S"]
[[[-131 408] [-129 407]] "S"]
[[[-125 406] [-122 405]] "U"]
[[[-84 188]] [-83 188]] "I"]
[[[-303 200] [-304 203]] "S"]
[[[25 414] [19 415]] "I"]
[[[-128 256] [-125 254]] "U"]
.......................................]
to go
let coords [
[ [ 255 97] [ 256 97] ]
[ [-131 408] [-129 407] ]
[ [-125 406] [-122 405] ]
[ [ -84 188] [ -83 188] ]
[ [-303 200] [-304 203] ]
[ [ 25 414] [ 19 415] ]
[ [-128 256] [-125 254] ]
]
let coord_class ["S" "S" "U" "I" "S" "I" "U"]
show add-classes coords coord_class
end
它将打印所需的输出:
[[[255 97 "S"] [256 97 "S"]] [[-131 408 "S"] [-129 407 "S"]] [[-125 406 "U"] [-122 405 "U"]] [[-84 188 "I"] [-83 188 "I"]] [[-303 200 "S"] [-304 203 "S"]] [[25 414 "I"] [19 415 "I"]] [[-128 256 "U"] [-125 254 "U"]]]
太好了,这很有效。假设地说,如果我想连接另一组属性,我只需要嵌套第二个代码块。例如:设置组合类添加类coords coord_类设置超组合类添加类组合类新字段有效,是。但它实际上是一个非常好的用例。尝试:
显示减少添加类(列出coords coord\u类新字段)
。(您可以在列表中添加任意数量的字段。)