NetLogo-将单个代理与多个代理进行比较(预期输入不是列表)

NetLogo-将单个代理与多个代理进行比较(预期输入不是列表),netlogo,Netlogo,我是第一次海报,六个月的读者。我喜欢这个网站,并感谢它涵盖了大量的主题。现在我觉得使用NetLogo更有能力了,我尝试了一些更难的东西,但还是被卡住了 基本上,我创建了一个成员函数,它在包含两个变量(摇滚和嘻哈的观点)的向量上测量代理之间的相互关系: 在哪里 这一切都很好,我能够比较任何两个代理没有问题。 然而,当我试图将一个代理[agent1]与他周围的所有代理进行比较时,我的问题就出现了 to go ask turtles [ let neighbours turtle-se

我是第一次海报,六个月的读者。我喜欢这个网站,并感谢它涵盖了大量的主题。现在我觉得使用NetLogo更有能力了,我尝试了一些更难的东西,但还是被卡住了

基本上,我创建了一个成员函数,它在包含两个变量(摇滚和嘻哈的观点)的向量上测量代理之间的相互关系:

在哪里

这一切都很好,我能够比较任何两个代理没有问题。 然而,当我试图将一个代理[agent1]与他周围的所有代理进行比较时,我的问题就出现了

to go
    ask turtles [
    let neighbours turtle-set turtles in-radius neighbourhood
    show membership self neighbours] 
end
每当我运行此模型时,我都会收到一个错误,d2报告者期望输入而不是列表-理论上我理解-通过拥有1+个代理的邻域,计算会收到例如[0.1 0.8][0.2 0.4][0.5 0.6]


我只是想知道,这个程序有没有办法考虑到所有的邻居并达到一个会员号?我已经通过帖子和几本netlogo书籍进行了广泛的搜索,但到目前为止运气不佳。感谢您花时间阅读本帖并提供任何有用的评论。

您对发生的事情的理解是正确的:您的
会员资格
reporter需要两个单独的代理,您将向其传递一个代理和一个代理集。要单独计算每个成员资格,并获取成员资格值列表,可以使用:

注意and的用法,它有时很难理解。在这种情况下,
self
是邻居,
imf
是外部询问者

现在你有了一份会员编号列表,但你想知道:

有没有一种方法可以考虑所有的邻居并且到达一个单一的成员编号?< /P> 有很多方法!但我们无法真正告诉您使用哪一个:这取决于您的模型和您想用它做什么

如果您想要一些非常简单的东西,您可以选择以下选项:

show mean [ membership myself self ] of neighbours
…但我不知道这在你的背景下是否有意义。无论如何,NetLogo有很多优点
您应该能够使用它来获得您想要的号码。

谢谢。你的回答非常有帮助,教会了我一些关于“自我”、“我自己”和“的”的要点。我一定会认真思考我希望我的过程做什么,并检查一下您推荐的数学原语,谢谢^^
to go
    ask turtles [
    let neighbours turtle-set turtles in-radius neighbourhood
    show membership self neighbours] 
end
to go
  ask turtles [
    let neighbours turtle-set turtles in-radius 10
    show [ membership myself self ] of neighbours
  ]
end
show mean [ membership myself self ] of neighbours