List 在Netlogo中使用map或foreach进行求和?
你好,我有下一个代码:List 在Netlogo中使用map或foreach进行求和?,list,sum,netlogo,List,Sum,Netlogo,你好,我有下一个代码: to difusion-out if any? turtles with [color = yellow and shape = "ai"] [ let mylist (list ([autoinduc] of turtles with [shape = "circle 2" and color = yellow])) let mylist2 (list count turtles with [shape = "ai"]) l
to difusion-out
if any? turtles with [color = yellow and shape = "ai"]
[
let mylist (list ([autoinduc] of turtles with [shape = "circle 2" and color = yellow]))
let mylist2 (list count turtles with [shape = "ai"])
let mylist3 (map [?1 - ?2] (mylist) (mylist2))
let mylist4 sum (mylist3)
let concentracion-se ((- kse * count turtles with [shape = "ai"] ) + ( 2 * (mylist4)))
ask one-of turtles with [shape = "ai"]
[hatch concentracion-se
]
]
end
我要做的是减去mylist的每个成员mylist2的每个成员,所以这个名为mylist3的新列表需要使用sum命令对所有成员求和。但是,当运行该过程时,我得到以下错误:-预期输入为数字,但得到的却是列表[0]。
观察程序运行时出错-
那么问题出在哪里呢?我没有很好地定义我的列表,或者map命令没有正确使用?我觉得
map
很好。您的列表设置错误:
let mylist (list ([autoinduc] of turtles with [shape = "circle 2" and color = yellow]))
[autoinducl]海龟的[shape=“circle 2”和color=yellow]
返回海龟的列表。当您将list
放在它前面时,会将整个列表粘贴到另一个列表中。因此,您最终使用的是[[1 2 3]]
,而不是[1 2 3]
我认为这也是错误的:
let mylist2 (list count turtles with [shape = "ai"])
使用[shape=“ai”]计数海龟数
返回一个数字(具有该形状的海龟数)。把list
放在它前面会把那个数字粘在一个列表中。因此,你只需要列出一个数字,这可能不是你想要的