Arrays 如何从excel中读取参数数组,使其值在股票初始化时可用?
问题是: 我需要将excel电子表格中的一行值读入参数数组,并使用这些值设置股票的初始值 具体内容: a。我可以使用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生成的模型内部的内部计时有关,这样加载参数的函数在股票获得初始值后执行——但这可能只是因为我的额头反复撞到墙上而引起的谵妄。但是,如果真的是这样,我如何才能更早地将函数偷偷引入,或者更好的是,那些真正知道自己在做什么的人如何实现这一点 我正在努力实现的目标: 作为一名七旬老人,我手头有很多时间,模糊地回忆起70年代初系统科学项目中使用Dynamo进行的动态建模(从那时起就没有使用过),我想我应该对基于年龄的新冠肺炎大流行建模进行一次重击。我想看看,除其他外,建立老年监狱(在现在空置的俱乐部药品、凉鞋中……我确信)是否是一个经济上有利的战略。要做到这一点,需要将经典的SIR方法分解为特定年龄的因果链。到目前为止,我有8个年龄组的27个年龄特定参数和24个标量参数。虽然我很想再打一次。。。所有这些数据我真的希望有更好的方法 我必须说,我对建模在短短50年左右的时间里取得的成就感到惊讶,我对Anylogic的应用程序着迷——尽管它对我来说有点像java 非常感谢你 卡尔·科特雷尔Arrays 如何从excel中读取参数数组,使其值在股票初始化时可用?,arrays,excel,parameters,anylogic,Arrays,Excel,Parameters,Anylogic,问题是: 我需要将excel电子表格中的一行值读入参数数组,并使用这些值设置股票的初始值 具体内容: a。我可以使用ExcelControlName.getCellNumericValue(“ExcelSheetName”、RowNumber、ColumnNumber)从excel成功设置标量参数默认值 b。尝试使用ExcelControlName为数组参数设置默认值。readHyperArray(DestinationArrayName,“ExcelSheetName”、RowNumber、C
我不确定我是否理解,但这里是: 我知道您有以下结构:
您需要如下初始化股票。 为此,在参数的初始值上,使用返回HyperParameter的函数: 函数getInitialValue应该返回一个超参数,我认为这段代码应该适合您(您必须根据excelfile上的内容选择RowNumber,MyDimension是维度的名称,ExcelControlName是保存股票初始值的excel)
HyperArray x=新的HyperArray(MyDimension);
对于(int i=0;i我不确定是否理解,但这里是:
我知道您有以下结构:
您需要如下初始化股票。
为此,在参数的初始值上,使用返回HyperParameter的函数:
函数getInitialValue应该返回一个超参数,我认为这段代码应该适合您(您必须根据excelfile上的内容选择RowNumber,MyDimension是维度的名称,ExcelControlName是保存股票初始值的excel)
HyperArray x=新的HyperArray(MyDimension);
对于(int i=0;你是SLAC的Les Cottrell的亲戚吗?你是SLAC的Les Cottrell的亲戚吗?
HyperArray x=new HyperArray(MyDimension);
for(int i=0;i<=numColumns;i++){
x.set(ExcelControlName.getCellNumericValue("ExcelSheetName", RowNumber, i), i);
}
return x;