当前位置: 首页 > 知识库问答 >
问题:

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

法烨华
2023-03-14

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

共有1个答案

韩佐
2023-03-14

在“代理表格”工具栏中,有一个磁盘图标,用于将表格保存到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代码可以通过JNI调用C 代码。但是,是否可以通过JNI或其他方法再次从C 调用Java代码? 问题答案: 是的,您当然可以。这是一个例子: 这是java文件: 还有一些使用它的C ++:

  • 我已经编写了Java代码,需要与Repast Simphony集成。 但是当我试图为reover Simphony设置与我的代码相同的工作空间时,我遇到了这个错误: 语法错误,注释仅在源代码级别为1.5或更高时可用 有什么建议吗?

  • 问题内容: 有没有人能将C#代码集成到Java应用程序中呢? 代码很小,所以我可以用Java重写,但是如果可能的话,我宁愿重用代码。不要重复自己,等等。 另外,我知道我可以将C#公开为Web服务或其他任何东西,但是其中包含一些安全性/加密功能,因此,我宁愿将其紧密集成。 编辑:它将在基于服务器的应用程序上,因此“下载”另一个运行时是无关紧要的。 问题答案: 有一个IL到Java字节码编译器Gras

  • gcc-g-i/usr/lib/jvm/java-1.6.0-openJDK-1.6.0.0.x86_64/include/-i/usr/lib/jvm/java-1.6.0-openJDK-1.6.0.0.x86_64/include/-i/usr/lib/jvm/java-1.6.0-openJDK-1.6.0.0.x86_64/include/-i/usr/lib/jvm/java-1.6.

  • 问题内容: 是否可以在运行时从Java代码以编程方式调用Ant或NSIS脚本?如果是这样,怎么办? 问题答案: 您 可以 从Java代码调用ant脚本。 请参阅本文(向下滚动至“通过Java运行Ant”部分)和本文: 更新资料 我尝试使用以下ant文件,它没有“告诉”任何内容(没有控制台输出),但是它 起作用了 :该文件确实被移动了 当我再次尝试时(当无法移动(已经移动)时),我得到了。 我认为这

  • 问题内容: 我有一个会话密钥,它是我从REST API调用中获得的JavaScript变量。我需要在Servlet中调用Java代码,并将该键作为参数传递。我可以使用什么JavaScript函数来做到这一点? 问题答案: 几种方法: 使用火的GET请求。注意,它是同步的(因此客户端将看到当前页面正在更改)。 请注意,内置函数在传递请求参数之前对其进行编码的重要性。 用火GET或POST请求。需要注