所以听起来您正在使用数组股票,其中数组是十值 AnyLogic 维度。
如果您点击Edit... 按钮获取初始值,您会看到它们是在Java 符号{v1, v2, ..., v10} 中指定的,其中v1 是一维备选方案的初始值,等等。(令人困惑的是,这是Java与数组 stock 不同的数组表示法。)
没有直接的方法可以从 Excel 数据初始化这些。使用 AnyLogic 7.2+,您可以相当轻松地将 Excel 值导入 AnyLogic 数据库表,但与基本的 AnyLogic 变量或参数不同,没有可视化向导来设置查询以填充股票的初始值。
您最好的选择可能是将 Excel 工作表导入 AnyLogic 数据库表,然后在模型的启动代码中,通过查询显式循环设置 10 个值。您可以在股票上使用set 方法(函数)来设置每个值(它有两个参数:要设置的值,然后是要设置的维度替代数)。
示例
请参阅 AnyLogic 帮助 Database --> Importing database tables,了解如何将 Excel 工作表导入为表格。
假设您的表名为 stock_vals,列有 stock_name(标识值所针对的股票)、val1、val2 等(为维度条目 1 提供 double 值, 2等)。
然后假设您的数组股票被称为population,其维度为AgeRange,具有替代品YOUNG、MIDDLE_AGED和OLD(替代品1、2和3——我只是使用了三个替代品来实现它更简单)。然后假设你的表中有条目
"population", 100.0, 200.0, 300.0
那么你可以在你的启动逻辑中使用如下代码:
stock.set(selectFrom(stock_vals).where(stock_vals.stock_name.eq("population")).uniqueResult(stock_vals.val1), 1);
stock.set(selectFrom(stock_vals).where(stock_vals.stock_name.eq("population")).uniqueResult(stock_vals.val2), 2);
stock.set(selectFrom(stock_vals).where(stock_vals.stock_name.eq("population")).uniqueResult(stock_vals.val3), 3);
AnyLogic Database --> Querying 帮助显示了此数据库选择 Java 代码的工作原理。
上面的代码可以整理/变得更优雅,但这就是本质。