如何从 excel 中读取参数数组,以便在股票初始化时可以使用它的值?

How can I read a parameter array from excel so that its values are available when stocks are initialized?

问题:

我需要从 excel 电子表格中读取一行值到参数数组中,并使用这些值来设置股票的初始值。

具体情况:

一个。我可以使用 ExcelControlName.getCellNumericValue("ExcelSheetName", RowNumber, ColumnNumber) 从 excel 成功设置标量参数默认值。

b。尝试使用 ExcelControlName.readHyperArray(DestinationArrayName,"ExcelSheetName",RowNumber, ColumnNumber, false) returns 设置数组参数的默认值 "Cannot return a void result" 构建错误。

c。我可以使用 ExcelControlName.readHyperArray(DestinationArrayName,"ExcelSheetName",RowNumber, ColumnNumber, false).

从代理操作 "On startup:" 部分调用的函数中读取参数数组

d。即使参数数组显示值(当 运行 时),其初始值设置为由函数成功加载的参数数组的股票全部为零。初始值:ParameterArrayName.

e。当我通过值编辑器设置参数数组值时,股票会正确初始化。

我的怀疑:

我认为这个问题与 Anylogic 生成的模型内部的内部时序有关,因此加载参数的函数是在股票获得初始值后执行的——但这可能只是是我的额头反复撞墙引起的精神错乱。但是,如果确实是这种情况,我如何才能更早地潜入该功能,或者更好的是,真正知道自己在做什么的人将如何实现这一目标?

我想要完成的事情:

作为一个七十多岁的人,手上有很多时间,并且对七十年代初期系统科学项目中使用 Dynamo 进行动态建模的记忆模糊(此后不再使用),我想我会在这个年龄受到打击基于 COVID-19 大流行的建模。除其他外,我想看看建立老年监狱(在现在空置的 Club-Meds、Sandals……我敢肯定)是否是一种经济上有利的策略。要做到这一点,需要将经典的 SIR 方法分解为特定年龄的因果关系链。到目前为止,我有 27 个针对 8 个年龄组的特定年龄参数和 24 个标量参数。尽管我很想输入和重新输入...所有这些数据我真的希望有更好的方法。

我必须说,我对建模在短短 50 年左右的时间里取得的进步感到惊讶,我对 Anylogic 的应用程序着迷 - 尽管它对我来说有点 java-ish。

非常感谢,

卡尔·科特雷尔

Equivalent parameter arrays - one with values entered in edit the other read from excel file through a function

不确定我是否理解,但这里是:

我了解到您的结构如下:

并且您想按如下方式初始化库存。

为此,在参数的初始值上使用 return 超参数的函数:

函数 getInitialValue 应该 return 一个超参数,我认为这段代码应该适合你(你必须根据你的 excel 文件中的内容选择 RowNumber,MyDimension 是你的名称维度,而 ExcelControlName 是 excel,您在其中保存股票初始值的值)

HyperArray x=new HyperArray(MyDimension);
for(int i=0;i<=numColumns;i++){
    x.set(ExcelControlName.getCellNumericValue("ExcelSheetName", RowNumber, i), i);
}

return x;