【问题标题】:Adding links-own and turtles-own netlogo添加 links-own 和 turtles-own netlogo
【发布时间】:2020-10-25 05:51:08
【问题描述】:
turtles-own [ a ]
patches-own [b ]
links-own [ c ]

to a+b
ask turtles with [ pxcor = x and pycor = y ][ set a + b ]
end

这是可行的,因为 a + b 与该补丁坐标处的 b 值相加。

我正在尝试对链接做同样的事情。

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    简短的回答,你不能。

    您的示例有效的原因(或者如果您有set a a + b 并提供了 x、y 等的值)是因为您要求海龟这样做(在 NetLogo 术语中,在海龟上下文中完成)。也就是说,乌龟知道它自己的“a”值并且可以访问唯一的“b”值,因为乌龟只站在一个补丁上。如果您尝试使用 ask patches 而不是 ask turtles 执行相同的代码,则会收到错误消息。这是因为补丁无法识别站在其上的潜在众多海龟中的哪一个来为“a”提供值。

    因为一个海龟可以链接到任意数量的其他海龟,它可以有很多链接。这意味着没有足够的信息让海龟知道哪个链接提供'c'的值。但是有些事情你可以做。

    选项1:随机选择它所连接的链接之一

    turtles-own [ a ]
    links-own [ c ]
    
    to a+b
      ask turtles [ set a a + [c] of one-of my-links ]
    end
    

    选项 2:将它连接到的所有链接的“c”值相加

    turtles-own [ a ]
    links-own [ c ]
    
    to a+b
      ask turtles [ set a a + sum [c] of my-links ]
    end
    

    或者你可以选择'c'等的最大值。

    要解决您的编码问题,您需要弄清楚海龟应该如何选择一个或多个链接来提供要添加的值。

    【讨论】:

    • 如果存在相关性,你将如何同时更新链接变量和 ask turtles 变量
    • 我不明白。请提出一个新问题(不要编辑这个问题),并举例说明您想要做什么以及您尝试使用代码来做到这一点
    • @user13745291 如果答案解决了您的问题,请接受 - 请参阅What should I do when someone answers my question?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    • 1970-01-01
    相关资源
    最近更新 更多