[英]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.