[英]Step Function For Array in Anylogic
如何在Anylogic中对数组使用步进功能? step函数应用于双精度值,但是我想在特定时间应用于数组的元素。
您不能...所以这是一个解决方案:
代替数组,您应该使用linkedHashMap,其中您的键是特定时间,而元素是您当时想要的步长值。 因此,您将其定义如下:
然后将这样的值放入:
stepsArray.put(3.0,2.3);
其中3.0是执行步骤的时间,而2.3是执行步骤的值。 您必须在其中放置所需的所有值。 您是必须根据自己的需要填写这些值的人。
然后,创建一个循环事件,该事件将评估是否应该应用步骤,并创建一个double类型的变量,该变量将是存储步骤值的变量。
因此,该事件:
double theTime=round(100*time())/100.0;//it's better to round up the time just in case
if(stepsArray.containsKey(theTime)){
variable=stepsArray.get(theTime);
}
请注意,我使用的是变量,而不是动态变量。他们可以将变量连接到sd模型中需要执行步骤的任何位置。
这种方法有点复杂,但是对于您完全模棱两可的问题,这是最通用的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.