netlogo - 添加 links-own 和 turtles-own netlogo
问题描述
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 的值。
我正在尝试对链接做同样的事情。
解决方案
简短的回答,你不能。
您的示例有效(或者如果您有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'等的最大值。
为了解决你的编码问题,你需要弄清楚海龟应该如何选择一个或多个链接来提供要添加的值。
推荐阅读
- json - 如何注册要与detectron2 一起使用的数据集?我们有 COCO JSON 格式的图像及其注释
- mysql - if-else 在 where 条件下 - MySQL
- python - 从零开始的 3 层神经网络(调试)
- ios - 如何快速获取可选响应?
- spring - 如何首先验证 Spring @PathVariable 属性?
- rest - 在泽西岛,如何返回与 200 响应对象不同的 400 响应代码的对象
- flutter - 在 web 上运行时,flame_tiled 和/或 tiled 包会出错
- mysql - MySql 计算多列
- python - 如何从单个数据帧切片和创建多个熊猫数据帧
- ios - iOS 14 设备端语音识别