在每个刻度中读取文件中的数据

时间:2015-02-12 16:38:53

标签: file netlogo

我正在使用NetLogo,我希望从每个时间步(tick)中的每个代理的文件中读取两种类型的数据(例如“x”和“y”)。有谁知道我怎么能这样做?

以下是代码:

breed [agents agent]
agents-own [  need  tax]

to setup
  clear-all
  define-xy
  reset-ticks
end

to define-xy
  file-open "D:\\data\\xy.txt"
   while [not file-at-end?]
   [
  let items read-from-string (word "[" file-read-line "]")
   crt 1 [
     set xcor item 0 items  
     set ycor item 1 items
     set label ycor
   ]
  ]
  file-close
end

to go
  tick
  if (ticks = 5)
  [
    stop
    ]
end

现在,如果我想定义两个税收参数,需要更改每个滴答我应该做什么。我有点困惑。在上面的代码中,我可以从一个有两列的文件中进行一次读取。

1 个答案:

答案 0 :(得分:0)

好。您提供的关于如何在文本文件中构建数据的信息太少,因此我假设您只有两列。所以文本文件如下所示:

1 3
4 5
9 11
-1 33

首先,我认为您需要一种方法来控制代理,我再次假设您创建了一定数量的代理,并且第1行文本文件用于代理1。

那就是说,接下来要做的就是使用repeat number-of-agents [tasks]

tasks看起来像是:

let auxiliar 0
repeat number-of-agents [
let data-read read-file-line
ask agent auxiliar [ set var1 first data-read 
                     set var2 last data-read ]
tick ;Reads, Assigns, Ticks and all over again.
set auxiliar auxiliar + 1
]