如何在excel文件中打印Netlogo补丁的矩阵数据?

如何在excel文件中打印Netlogo补丁的矩阵数据?,netlogo,Netlogo,我特别使用Netlogo的“群集”模型。我想要的是选择一个代理,并查看是否有其他代理用于所选代理的后续3个修补程序。我想要检查代理周围的所有代理,以便获得数据的矩阵形式,并将其保存在excel/cvs文件中 不幸的是,我没有一个明确的答案给你,但我想你会想做这样的事情: globals [ output_matrix] patches-own [occupied?] to setup clear-all reset-ticks create-turtles 50 set out

我特别使用Netlogo的“群集”模型。我想要的是选择一个代理,并查看是否有其他代理用于所选代理的后续3个修补程序。我想要检查代理周围的所有代理,以便获得数据的矩阵形式,并将其保存在excel/cvs文件中

不幸的是,我没有一个明确的答案给你,但我想你会想做这样的事情:

globals
[ output_matrix]
patches-own 
    [occupied?]
to setup
clear-all
reset-ticks
  create-turtles 50
  set output_matrix []
end
to go
  move 
  tick
end  
to move  
  ask turtles [set heading random-float 361 forward random-float 2 ]
  ask patches with [count turtles-here > 0] [set occupied? 1]
  ask patches with [count turtles-here = 0] [set occupied? 0]
  check_surroundings
end
to check_surroundings
  ask turtles [ ifelse any? turtles-on patch-ahead 1 
    [set output_matrix lput 1 output_matrix]
    [set output_matrix lput 0 output_matrix]]
  ask turtles [ ifelse any? turtles-on patch-ahead 2 
    [set output_matrix lput 1 output_matrix]
    [set output_matrix lput 0 output_matrix]]
  ask turtles [ ifelse any? turtles-on patch-ahead 3 
    [set output_matrix lput 1 output_matrix]
    [set output_matrix lput 0 output_matrix]]
 end
这将给你两个选择。1您可以使用行为空间将每个勾号中的完整修补程序列表输出到一个文件(您将在行为空间中指定),每个修补程序使用一个简单的0或1来表示它是否已被占用。第二种选择是使用它创建的输出矩阵列表(不确定您的最终游戏是什么)。这将为每只海龟提供一系列的0和1(如果您想估计聚合如何随时间形成,这可能更有用)

您可能还希望查看输出打印和文件打开/文件关闭原语


我相信,如果您生成一些示例代码,社区将能够进一步帮助您

你到底在找什么有点不清楚。你想让每只乌龟看一看它前面的3个补丁,然后将它们输出到一个文件中吗?或者查看半径为3个单位的所有面片,并输出有什么?感兴趣的输出因子是什么(密度、距离、大小、颜色)?您希望矩阵由什么组成?你想让每一个滴答声、每一次跑步结束时、每一个参数、每一只乌龟都这样做吗?请详细说明,以便我们能更好地帮助您。通常,提供一些编码尝试/可再现的问题或代码片段来使用也是一个好主意。首先,为错误道歉。是的,我想让海龟们看3个补丁,但不是以半径的方式,而是以矩阵的方式。我只是想看看矩阵中是否还有其他乌龟,只是一个布尔值。例如,如果有海龟,则值应为1,如果没有海龟,则值应为矩阵的0。我想要每只蜱和每只海龟的数据。希望这能澄清一切。
globals [rpts]  ;write your code to set global only once

to test
  ca
  set rpts moore-offsets 3
  ask n-of 50 patches [sprout 1 [set color red]]
  ask one-of turtles [
    ask patches at-points rpts [set pcolor yellow]
    print any? other turtles-on patches at-points rpts
  ]
end

to-report moore-offsets [#n] ;includes center ...
  let _result []
  let _xs n-values (1 + 2 * #n) [? - 3]
  foreach _xs [
    let _y ?
    foreach _xs [
      let _x ?
      set _result lput (list _x _y) _result
    ]
  ]
  report _result
end