2015-06-04 56 views
1

我試圖使用其特徵來自csv文件的代理程序填充我的世界。該文件看起來像這樣:fileNetlogo-使用.csv文件中的特徵創建代理程序

我非常流利地在NetLogo的其他領域,但這是第一次潛入外部數據輸入。

我查看過其他地方,但其他主題僅用於填充數據列表。官方幫助和詞典似乎在5.1之前和之後有很大差異,所以我不確定我找到的幫助指南是否準確到最新版本。

我甚至不關心是否會產生一個大的列表(或列表列表),或者如果在逐行讀取數據的時候,它會在生成代理後擦除前面的行數據。

我一直在使用這裏給出的幫助下嘗試:http://netlogoabm.blogspot.com/2015/05/connecting-or-linking-turtles-from-csv.html

,但似乎拋出錯誤,因爲我的數據不僅是數字。我真的很感謝幫助。

回答

1

我相信你可以修改我的例子,以配合您的問題,在總結我第一個文件讀入到一個全局列表,在每個刻度提取劑的藥劑分配屬性的數量,並運行模擬:

extensions [csv] 
    Breed [Drivers Driver] 
    turtles-own[ 
     Name 
    List-Of-Actions 

    ] 
    globals [li] 

    to setup 

     ca 
     set li [] 
     file-open "Time.csv" 
     load-Files-And-Set-The-List 
    CreateDrivers 
Set-Agents-List-Of-Actions 
     reset-ticks 
    end 






    to load-Files-And-Set-The-List 
     if file-at-end? [ stop file-close ] ;; protect against end of file 


     while [not file-at-end? ] 
    [ 
     let _line (csv:from-row file-read-line ",") 
     set li lput _line li 

    ] 



    end 




    to Set-Agents-List-Of-Actions 
    let t [] 



     foreach li 
     [ 
     if position ? li > 0 
     [ 


      ask turtles with [Name = (item 0 ?)] 
      [ 
      set hidden? false 
      set List-Of-Actions lput (list (item 1 ?) (item 2 ?) (item 3 ?)) List-Of-Actions 


      ] 
     ] 
     ] 

    end 


    to go 

     ask Drivers 
      [ 
      foreach List-Of-Actions 

      [ 

       if ticks = (item 0 ?) 

       [ 

      move-to patch (item 1 ?) (item 2 ?) 


       set List-Of-Actions remove ? List-Of-Actions 

       ] 
      ] 


      ] 

    tick 
    end 


    to-report Driver-Names 
     let DriverNames [] 
     foreach li 
     [ 
     if position ? li > 0 
     [ 
      set DriverNames lput (item 0 ?) DriverNames 
     ] 
     ] 

     set DriverNames remove-duplicates DriverNames 
     report DriverNames 

    end 




    to CreateDrivers 
     resize-world 0 500 0 3 
     set-patch-size 60 
     let n length Driver-Names 
     Foreach Driver-Names 
     [ 
     create-Drivers 1 
     [ 
      set Name ? 
      set shape "car" 
      set size 1 
      set hidden? true 
      set List-Of-Actions [] 
     ] 
     ] 



    end 
1

您可以使用新的CSV extension輕鬆讀取文件。那麼你應該能夠遍歷每一行,創建一個烏龜並設置它的變量。它與NetLogo 5.2捆綁在一起。

1

你看過模型庫 - 代碼示例文件夾'文件輸入示例'嗎?