从 excel 中逐行读取 Anylogic Experiment 的参数

Reading Parameters row by row from excel for Anylogic Experiment

我想 运行 一个 Anylogic Parameter 实验,我希望从 excel 文件中连续读取参数,这样 excel 数据的每一行都对应于参数一个 运行。同样,我希望它 运行 与 excel 中的参数行一样多。我可以使用 ExcelControlName.getCellNumericValue("ExcelSheetName", RowNumber, ColNumber) 读取一行数据,但是如何设置它以便通过 运行ning 参数自动多次 运行s来自所有行。

在你的模拟模型中,创建一个名为 row 的参数,这将是你的参数变化实验中唯一改变的参数......然后你将你的模拟中的参数转换为变量,并且每个变量将读取 excel 文件如下>

ExcelControlName.getCellNumericValue("ExcelSheetName", row, ColNumber)

其中 row 是参数变化实验中变化的参数,colNumber 是代表您要评估的特定变量的列。

一个很有用的问题。

一种选择是使用模拟 Object 并且不让模型跳过实验和 运行 模型。

这只会让您更好地控制模型执行,并且您可以使用一些模拟前后的代码 运行。

图像如下super-simple模型

我有一个参数和一个跟踪参数然后停止模拟的事件。

然后在实验中我有一个 Excel object,一个链接到主参数的变量,以及一个只调用 run()

的按钮

excel文件在

中有一些简单的数据

现在在实验的 Java 部分您只需要添加以下代码。

这可确保根据 运行 计数使用正确的数据更新变量,并且当您停止模型时,如果其中有更多值,它将再次调用 运行 函数Excel sheet 加载。

请注意,Excel 中的行索引从 1 开始,我们的数据有一个 header,因此我们希望从第 2 行开始,因此我添加了 2 + getExperiment().getRunCount()

如果您 运行 这个简单的模型,您将在控制台中看到打印出 Excel 文件中的值。

10.0
20.0
30.0