【问题标题】:how to save the output data in new column in csv file each tick in NetLogo如何将输出数据保存在 csv 文件的新列中 NetLogo 中的每个刻度
【发布时间】:2016-06-07 12:17:21
【问题描述】:

我需要将我的模拟数据保存在 netlogo 的 csv 输出文件中 每 10 个刻度我想保存几个代理的数据 但我想每次都将数据写入新列 每次他继续写新的原料的问题 有没有命令或方法可以做到这一点? 谢谢你 这是写入文件的功能 我在每个滴答声中调用它

    to write-to-file [set-breed]
let n 0
let str ""
set str set-breed
  file-print (word "---------- Tick Number: " ticks "-----------") 
  foreach my-agent-list [
         ifelse ? != nobody[
         ask ? [
    file-print (word   ": (x:y)," "(" pxcor ":"  pycor"),")    
    file-type (word   ": age," age ",")
        file-print ""
     set n n + 1
    ]][
      file-type (word set-breed n ":," "dead")
      set n n + 1
       file-print "" 
       ]]   
  file-print ""  ;; blank line
  file-flush
end

我得到如下结果

---------- Tick Number: 0-----------
  pxcor: -70 pycor: -45 age: 0
  pxcor: -61 pycor: 42 age: 0
  pxcor: -91 pycor: -16 age: 0

---------- Tick Number: 1-----------
  pxcor: -70 pycor: -45 age: 1
  pxcor: -61 pycor: 42 age: 1

想要的应该是这样的:

 ---------- Tick Number: 0---------     ---------- Tick Number: 1--- 
 pxcor: -70 pycor: -45 age: 0             pxcor: -70 pycor: -45 age: 1
 pxcor: -61 pycor: 42 age: 0              pxcor: -61 pycor: 42 age: 1
 pxcor: -91 pycor: -16 age: 0            pxcor: -91 pycor: -16 age: 0

【问题讨论】:

  • 你试过了吗?
  • 向您的问题添加任何补充代码,而不是 cmets。
  • 在这种情况下您想要的输出是什么样的?

标签: csv netlogo


【解决方案1】:

在我们的世界中,文件 I/O 总是按行而不是按列进行。但是您可以利用 Open Office 电子表格(或 Excel,如果您必须的话)并一步转换:

a,b,c,d,
Tick 1,5,4,2,
Tick 2,2,3,2,
Tick 3,3,5,-9,
Tick 4,3,-9,2,

进入这个,这就是我认为你想要的:

a,Tick 1,Tick 2,Tick 3,Tick 4
b,5,2,3,3
c,4,3,5,-9
d,2,2,-9,2

打开 csv 文件,将数据复制到剪贴板,然后选择性粘贴,选中转置选项。

【讨论】:

    猜你喜欢
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    相关资源
    最近更新 更多