如何将参数从 Main 提供给 Anylogic 中的代理
How to give a parameter from the Main to an agent in Anylogic
我的 Main 包含一个传送带,它将一个纸箱(我的代理)从 A 传送到 B。我添加了一个单选按钮,用户可以用它来选择箱子的大小("small","medium"、"big" 和 "very big")。我现在希望每个纸箱都保存单选按钮的值。我尝试了很多不同的东西,比如将它链接到一个参数,但我没能搞清楚。
我的模型图片:
我用于单选按钮的代码是:
if( value == 0 )
radioValue = 1;
else if( value == 1 )
radioValue = 2;
else if( value == 2 )
radioValue = 3;
else if( value == 3 )
radioValue = 4;
radioValue 是 Main 中的参数,我将 radio-button 链接到。
如何将此参数传递给代理以及稍后如何读取它?
在此先感谢您的帮助!
在您的 Kist 代理中创建一个名为 size 的变量,类型为 int。
在源块中,在属性中,在 "on at exit" 操作上,在属性的操作部分下写入以下代码:
agent.size=radioValue;
这是 AnyLogic 中最基本的事情之一...所以我建议您在开始使用任何模型之前接受培训。这可以通过阅读教程、3 天内的任何逻辑书或我在这里的课程来完成:noorjax.teachable.com/p/anylogic
稍后您可以使用 agent.size 在任何块中访问代理的大小。
在没有看到更多代码的情况下,我的一般建议是考虑遍历代理(例如,使用 for 循环)并让它们都设置一个局部变量 cartSize 等于 radioValue(我不会使用 "size" 因为我相信它也用于代理集)。只是在这里吐口水,但像这样的事情?
for (int x = 0; x < carton.size(); x++) {
carton.get(x).cartSize = radioValue;
}
我的 Main 包含一个传送带,它将一个纸箱(我的代理)从 A 传送到 B。我添加了一个单选按钮,用户可以用它来选择箱子的大小("small","medium"、"big" 和 "very big")。我现在希望每个纸箱都保存单选按钮的值。我尝试了很多不同的东西,比如将它链接到一个参数,但我没能搞清楚。
我的模型图片:
我用于单选按钮的代码是:
if( value == 0 )
radioValue = 1;
else if( value == 1 )
radioValue = 2;
else if( value == 2 )
radioValue = 3;
else if( value == 3 )
radioValue = 4;
radioValue 是 Main 中的参数,我将 radio-button 链接到。
如何将此参数传递给代理以及稍后如何读取它?
在此先感谢您的帮助!
在您的 Kist 代理中创建一个名为 size 的变量,类型为 int。
在源块中,在属性中,在 "on at exit" 操作上,在属性的操作部分下写入以下代码:
agent.size=radioValue;
这是 AnyLogic 中最基本的事情之一...所以我建议您在开始使用任何模型之前接受培训。这可以通过阅读教程、3 天内的任何逻辑书或我在这里的课程来完成:noorjax.teachable.com/p/anylogic
稍后您可以使用 agent.size 在任何块中访问代理的大小。
在没有看到更多代码的情况下,我的一般建议是考虑遍历代理(例如,使用 for 循环)并让它们都设置一个局部变量 cartSize 等于 radioValue(我不会使用 "size" 因为我相信它也用于代理集)。只是在这里吐口水,但像这样的事情?
for (int x = 0; x < carton.size(); x++) {
carton.get(x).cartSize = radioValue;
}