MAS コミュニティ
artisoc質問用掲示板(アーカイブ)
  
質問掲示板は移転しました。新掲示板はこちら

質問 (解決済み)

[artisocモデル] [artisocモデル] 時間計測した結果をcsvへ出力
質問者: seinenさん , 質問日時: 2020/09/14 14:20
1つ質問させていただきます、

地点Aから地点Bへ10個のエージェントを動かし、その所要時間をエージェントのIDごとにcsvファイルへ出力しようと考えています。
そこで過去の質問や資料を参考にしたうえで幾つか手法を検討したのですが、何れもデータが1つも出力されない状況で行き詰っております。

出力する数値はIDと所要時間を想定しており、所要時間は整数型変数の中にあります。
よろしくお願いいたします。



▼解決した回答


csvファイルの出力ですが、
例えば、
Universe.Map.Person
というエージェントを生成し、
Personに所要時間(Counter)という変数があるときは、
Universeのルールで次のように記述すると、csvファイル出力ができます。


Dim outputLine As String
Dim personAgtSet As AgtSet, persontAgt As Agt

If (OpenFile("out.csv",1,FILE_WRITE)) Then
// ファイル出力(ヘッダ)
outputLine = "ID,Count"
WriteLnFile(1,outputLine)

// ファイル出力(データ)
MakeAgtSet(personAgtSet, Universe.Map.Person)
For Each personAgt In personAgtSet
outputLine = CStr(personAgt.ID) & "," & CStr(personAgt.Counter)
WriteLnFile(1,outputLine)
Next personAgt
CloseFile(1)
Else
ExitSimulationMsg("Error: " & GetLastErrorMsg())
End if

回答者: m.tamada さん , 回答日時: 2020/09/14 17:08

▼ 全ての回答


csvファイルの出力ですが、
例えば、
Universe.Map.Person
というエージェントを生成し、
Personに所要時間(Counter)という変数があるときは、
Universeのルールで次のように記述すると、csvファイル出力ができます。


Dim outputLine As String
Dim personAgtSet As AgtSet, persontAgt As Agt

If (OpenFile("out.csv",1,FILE_WRITE)) Then
// ファイル出力(ヘッダ)
outputLine = "ID,Count"
WriteLnFile(1,outputLine)

// ファイル出力(データ)
MakeAgtSet(personAgtSet, Universe.Map.Person)
For Each personAgt In personAgtSet
outputLine = CStr(personAgt.ID) & "," & CStr(personAgt.Counter)
WriteLnFile(1,outputLine)
Next personAgt
CloseFile(1)
Else
ExitSimulationMsg("Error: " & GetLastErrorMsg())
End if

回答者: m.tamada さん , 回答日時: 2020/09/14 17:08



Copyright © KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
( 会社情報 情報セキュリティ・個人情報について )