如何在Anylogic中保存比较运行实验中不同运行的结果



我想将Anylogic中比较运行实验中不同运行的结果保存在excel表中,或保存到某个变量或输出中,以便使用这些值进行进一步计算。我该怎么做

另一种灵活的方法是将结果写入CSV。这应该适用于AnyLogic的任何模拟或实验。

您必须将标准外部库导入到环境中,并将代码添加到模拟运行结束时要执行的实验中。

在进口部分,你可以有这个:

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.OutputStream;
import java.io.PrintStream;

首先为文件名创建一个名为csvFileName的变量(您可以随意调用它(。然后在根目录中创建一个名为updateMyCSV((的函数或类似的函数。该函数的一般结构为:

FileWriter pw = new FileWriter(csvFileName, true);
StringBuilder sb;
sb = new StringBuilder();
sb.append(<variablename>); sb.append(',');

然后对您想要导出的每个变量重复上述操作

然后用完成功能

sb.append('n');

pw.append(sb);
pw.flush();
pw.close();

最好使用内置数据库,并让它在所有运行结束时写入Excel。

创建一个数据库表,其中包含诸如";run_number"replication_number"experit_ parameter_X"my_result_y";。Main上的每个params都应该有一列(至少是你不同的(和你感兴趣的每个输出值。

这样,您就可以在每次运行模型后使用insertInto命令(链接(轻松地编写模型结果。

最后,只需勾选";写入Excel";在dbase中的tickbox中,选择该文件,它将写入所有原始结果。

也检查使用dbase的示例模型,有几个使用这种方法

最新更新