【发布时间】:2021-03-09 04:47:35
【问题描述】:
在一个模型中,我有两个代理群体:OriginalAgent 和 CopiedAgent。它们是不同的代理类型。每个CopiedAgent 都是从OrginalAgent 复制而来,它们共享p_id 的相同值。
我想要实现的是在OriginalAgent 在其状态图中进入最终状态时删除CopiedAgent 的实例。
我创建了一个函数myfunction,它在OriginalAgent 状态图中最终状态的Action 字段中调用。调用时函数出错,但它显示了我尝试过的内容:
int agent_index = 99999;
for(int i=0; i<main.CopiedAgent.size();i++){
if(p_id == main.CopiedAgent(i).p_id){
agent_index = main.CopiedAgent(i).p_id;
}
}
if(my_biopsy_index != 99999)
main.remove_CopiedAgent(agent_index);
我相信错误源于循环,因为如果我硬编码特定的索引值并注释掉循环,if 语句会按预期工作。
【问题讨论】:
-
你能具体说明你得到的错误吗?
标签: anylogic