simulation - 导出 Anylogic 实验的结果
问题描述
我已经建立了我的模型并运行了实验。我似乎无法找到数据的存储位置。
我现在需要进行几次运行并比较结果,我使用的是正态分布的修复时间,因此在不修改参数的情况下,运行之间的结果应该会有所不同。
如何保留每次运行的结果,然后将它们全部呈现在同一个数据集中?
解决方案
从模拟中获取数据有两个主要选项
- 使用内部 AnyLogic 数据库
- 使用 Excel 或 txt 等外部文件
第 1 步:设置对象
- 内部数据库
使用您需要的列创建一个空表
- 外部对象
使用连接面板中 AnyLogic 提供的对象设置 Excel 或文本文件
第 2 步:保存数据
对于这两种情况,您都需要将数据写入您选择的对象,无论是在生成数据时还是在仿真模型结束时
- 使用内部数据库
最好的选择是使用以下命令写入数据
insertInto(table_name)
.columns(column_name)
.values(value);
这只会在您创建的数据库表中插入一个新行,您可以通过将逗号分隔的条目添加到列和值的参数中来将多个值保存到多个列中。
例如
insertInto(temeprature_output_table)
.columns(scenario_name, time, temperature)
.values("sceanrio1", 10,5, 102);
- 外部文件
2.1) 使用 Excel
filename.setCellValue(value, sheetName, row, column);
甚至更好的是,您可以写出整个数据集
excelFile.writeDataSet(dataset, sheetName, row, column);
2.2) 使用文本文件
fileName.println("value" + "\t" + " value 2");
您可以使用任何您想要"\t"
的分隔符来分隔制表符或","
逗号等
第 3 步:完成并导出数据
在此处查看帮助https://anylogic.help/anylogic/connectivity/export-excel.html#exporting-data-to-ms-excel-workbook
PS 可以通过一些努力来实现自动化
- 外部文件
在 Excel 上,您需要调用.writeFile()
才能完成。在这两个对象上,您需要调用.close()
它们以关闭它们并保存到内存中。
仅供参考 Excel 可以选择在终止时保存。
在此处阅读有关使用 Excel 的更多信息 - https://anylogic.help/anylogic/connectivity/excel-file.html#writing-to-excel-file
并在此处的文本文件中 https://anylogic.help/anylogic/connectivity/text-file.html#replicated
还有一个示例模型