问题:
我需要将Excel电子表格中的一行值读取到参数数组中,并使用这些值来设置股票的初始值。
具体内容:
一种。我可以使用ExcelControlName.getCellNumericValue(“ ExcelSheetName”,RowNumber,ColumnNumber)从excel成功设置标量参数默认值。
b。尝试使用ExcelControlName.readHyperArray(DestinationArrayName,“ ExcelSheetName”,RowNumber,ColumnNumber,false)设置数组参数的默认值会在生成时返回“无法返回空结果”错误。
C。我可以使用ExcelControlName.readHyperArray(DestinationArrayName,“ ExcelSheetName”,RowNumber,ColumnNumber,false)从代理操作“启动时:”部分调用的函数读取参数数组。
d。即使参数数组显示值(运行时),其初始值设置为由函数成功加载的参数数组的股票也全为零。初始值:ParameterArrayName。
e。当我通过值编辑器设置参数数组值时,股票会正确初始化。
我的怀疑:
我认为问题与Anylogic生成的模型的内部时序有关,因此在股票获得初始值后执行加载参数的功能-但这可能只是由于反复地把我的额头砸在墙上。但是,如果确实如此,我该如何更早地潜入该功能,或者更好的是,一个真正知道自己在做什么的人将如何做到这一点?
我要完成的工作:
作为一名七十年代的专家,我花了很多时间,并且在七十年代初从系统科学计划中使用Dynamo进行了模糊的动态建模回忆(此后一直未使用过),我认为我会对基于年龄的2019冠状病毒病大流行。我想看看,除其他外,建立监狱(在现在空缺的Club-Meds,Sandals ...我敢肯定)是否在经济上是有利的策略。要到达那里,就需要将经典的SIR方法分解为特定于年龄的因果关系链。到目前为止,我有8个年龄组的27个特定年龄参数和24个标量参数。尽可能多地键入和重新键入...我真的希望所有这些数据都有更好的方法。
我必须说,我对仅50年左右的建模速度感到惊讶,并且对Anylogic的应用程序着迷,尽管这对我来说有点像Java。
真的非常感谢你,
卡尔·科特雷尔
不知道我是否理解,但是在这里:
为此,请在参数的初始值上使用返回HyperParameter的函数:
函数getInitialValue应该返回一个HyperParameter,并且我认为这段代码应该对您有用(您必须根据excelfile上的内容选择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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句