gpt4 book ai didi

java - Repast 代理表可以从用户代码中调用吗?

转载 作者:行者123 更新时间:2023-11-30 06:32:22 25 4
gpt4 key购买 nike

在 Repast Simphony 中,人们可以从运行时环境中查看模拟中所有代理(每个周期)的表格。有没有一种简单的方法来保存运行时环境中的表或数据?或者我是否需要编写代码来复制表格所示的输出?

最佳答案

在代理表工具栏中有一个磁盘图标,可以将表保存到 Excel 文件。还可以使用以下示例代码以编程方式生成表并将其保存到文件:

public void log(){
double tick = RunEnvironment.getInstance().getCurrentSchedule().getTickCount();
Context context = RunState.getInstance().getMasterContext();

Map<String,TableModel> models = new HashMap<String,TableModel>();

// Create a tab panel for each agent layer
for (Object agentType : context.getAgentTypes()){
Class agentClass = (Class)agentType;

JPanel agentPanel = AgentTableFactory.createAgentTablePanel(context.getAgentLayer(agentClass), agentClass.getSimpleName());

if (agentPanel instanceof TablePanel){
TableModel model = ((TablePanel)agentPanel).getTable().getModel();
models.put(agentClass.getSimpleName(), model);

}
}

SpreadsheetUtils.saveTablesAsExcel(models, new File("out-"+tick+".xlsx"));
}

但请注意,如果频繁调用,这将非常低效,因此我不建议使用它来记录每个刻度。

关于java - Repast 代理表可以从用户代码中调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45845431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com