如何从AnyLogic中的直方图提取原始数据至Excel表格?
AnyLogic直方图原始数据导出至Excel步骤
先明确数据存储位置
你找到的向直方图提供数据的智能体里,数据要么绑定了内置Dataset,要么存在自定义的集合类变量(比如ArrayList<Double>)里,分两种情况处理:
情况1:直方图绑定了Dataset
- 确认项目中已添加Excel文件(Project面板右键→Add→Excel File)
- 在模型触发点(比如仿真结束的
on stop事件、自定义按钮的点击事件)添加导出代码:
参数说明:// 替换成你的Dataset名称、Excel文件对象和工作表名 myExcelFile.writeDataSet(myHistogramDataset, "Sheet1", 1, 1);writeDataSet(数据集对象, 工作表名, 起始行, 起始列)
情况2:数据存储在智能体的集合变量中
如果数据是存在智能体的自定义变量(比如叫rawHistogramData的ArrayList<Double>),可以选两种导出方式:
- 方式一:转成Dataset后批量写入
Dataset tempDataset = new Dataset(); // 遍历智能体中的数据集合 for(double data : targetAgent.rawHistogramData){ tempDataset.add(data); } // 写入Excel myExcelFile.writeDataSet(tempDataset, "Sheet1", 1, 1); - 方式二:逐行写入Excel
int startRow = 1; for(double data : targetAgent.rawHistogramData){ myExcelFile.setCellValue("Sheet1", startRow, 1, data); startRow++; }
额外注意事项
- Excel文件属性里建议选
Relative to project directory,避免路径问题 - 导出前可清空工作表旧数据:
myExcelFile.clearSheet("Sheet1"); - 避免在仿真高频循环中触发导出,防止性能损耗
内容的提问来源于stack exchange,提问作者Johnfd88
相关产品推荐
相关产品推荐

