模型正在复制 1 次输出而不是所需的 3 次
Model is duplicating output of 1 time instead of the 3 required
在模型中,有两种类型的代理(FollowUp 和 NewConsult),我想在进入占用块和占用资源时收集时间,以便了解在该块中等待的时间 运行 一个参数变化实验。每个患者类型都有各自的 timeEnterClerk
变量,时间被添加到各自的 waitClerkTime
统计数据中。从输出中可以看出,每种代理类型都被指定了一个时间,无论是上午(时间 < 150)、下午(时间 > 150)还是一整天。我很困惑,因为在 waitClerkTime.add(time() - agent.timeEnterClerk );
、waitClerkTimeMorn.add(time() - agent.timeEnterClerk );
和 waitClerkTimeAft.add(time() - agent.timeEnterClerk );
.
中输出所有代理类型的平均值时情况并非如此
// On Enter
agent.timeEnterClerk = time();
if (agent instanceof FollowUp)
((FollowUp)agent).timeEnterClerkFollowUp = time();
if (agent instanceof NewConsult)
((NewConsult)agent).timeEnterClerkNewConsult = time();
// On Seize
waitClerkTime.add(time() - agent.timeEnterClerk );
if (agent instanceof FollowUp)
waitClerkTimeFollowUp.add(time() - ((FollowUp)agent).timeEnterClerkFollowUp );
if (agent instanceof NewConsult)
waitClerkTimeNewConsult.add(time() - ((NewConsult)agent).timeEnterClerkNewConsult );
if (time() < 150)
waitClerkTimeMorn.add(time() - agent.timeEnterClerk );
if (agent instanceof FollowUp)
waitClerkTimeMornFollowUp.add(time() - ((FollowUp)agent).timeEnterClerkFollowUp );
if (agent instanceof NewConsult)
waitClerkTimeMornNewConsult.add(time() - ((NewConsult)agent).timeEnterClerkNewConsult);
if (time() > 150)
waitClerkTimeAft.add(time() - agent.timeEnterClerk );
if (agent instanceof FollowUp)
waitClerkTimeAftFollowUp.add(time() - ((FollowUp)agent).timeEnterClerkFollowUp );
if (agent instanceof NewConsult)
waitClerkTimeAftNewConsult.add(time() - ((NewConsult)agent).timeEnterClerkNewConsult);
仿真后的参数变化运行:
KneeClinicDataExport.setCellValue(root.waitClerkTime.mean(), 1, row + 1, 1);
KneeClinicDataExport.setCellValue(root.waitClerkTimeMorn.mean(), 1, row + 1, 2);
KneeClinicDataExport.setCellValue(root.waitClerkTimeAft.mean(), 1, row + 1, 3);
KneeClinicDataExport.setCellValue(root.waitClerkTimeFollowUp.mean(), 1, row + 1, 4);
KneeClinicDataExport.setCellValue(root.waitClerkTimeMornFollowUp.mean(), 1, row + 1, 5);
KneeClinicDataExport.setCellValue(root.waitClerkTimeAftFollowUp.mean(), 1, row + 1, 6);
KneeClinicDataExport.setCellValue(root.waitClerkTimeNewConsult.mean(), 1, row + 1, 7);
KneeClinicDataExport.setCellValue(root.waitClerkTimeMornNewConsult.mean(), 1, row + 1, 8);
KneeClinicDataExport.setCellValue(root.waitClerkTimeAftNewConsult.mean(), 1, row + 1, 9);
KneeClinicDataExport.setCellValue(root.waitClerkTimeRevision.mean(), 1, row + 1, 10);
KneeClinicDataExport.setCellValue(root.waitClerkTimeMornRevision.mean(), 1, row + 1, 11);
KneeClinicDataExport.setCellValue(root.waitClerkTimeAftRevision.mean(), 1, row + 1, 12);
row++;
您遇到此问题的原因是您没有在 if 语句中使用括号
在下面的例子中,两个语句都在条件为真时执行
if(conditions){
statementA;
statementB;
}
下面的例子中,当条件为真时只执行statementA,而statementB总是执行
if(conditions)
statementA;
statementB;
在模型中,有两种类型的代理(FollowUp 和 NewConsult),我想在进入占用块和占用资源时收集时间,以便了解在该块中等待的时间 运行 一个参数变化实验。每个患者类型都有各自的 timeEnterClerk
变量,时间被添加到各自的 waitClerkTime
统计数据中。从输出中可以看出,每种代理类型都被指定了一个时间,无论是上午(时间 < 150)、下午(时间 > 150)还是一整天。我很困惑,因为在 waitClerkTime.add(time() - agent.timeEnterClerk );
、waitClerkTimeMorn.add(time() - agent.timeEnterClerk );
和 waitClerkTimeAft.add(time() - agent.timeEnterClerk );
.
// On Enter
agent.timeEnterClerk = time();
if (agent instanceof FollowUp)
((FollowUp)agent).timeEnterClerkFollowUp = time();
if (agent instanceof NewConsult)
((NewConsult)agent).timeEnterClerkNewConsult = time();
// On Seize
waitClerkTime.add(time() - agent.timeEnterClerk );
if (agent instanceof FollowUp)
waitClerkTimeFollowUp.add(time() - ((FollowUp)agent).timeEnterClerkFollowUp );
if (agent instanceof NewConsult)
waitClerkTimeNewConsult.add(time() - ((NewConsult)agent).timeEnterClerkNewConsult );
if (time() < 150)
waitClerkTimeMorn.add(time() - agent.timeEnterClerk );
if (agent instanceof FollowUp)
waitClerkTimeMornFollowUp.add(time() - ((FollowUp)agent).timeEnterClerkFollowUp );
if (agent instanceof NewConsult)
waitClerkTimeMornNewConsult.add(time() - ((NewConsult)agent).timeEnterClerkNewConsult);
if (time() > 150)
waitClerkTimeAft.add(time() - agent.timeEnterClerk );
if (agent instanceof FollowUp)
waitClerkTimeAftFollowUp.add(time() - ((FollowUp)agent).timeEnterClerkFollowUp );
if (agent instanceof NewConsult)
waitClerkTimeAftNewConsult.add(time() - ((NewConsult)agent).timeEnterClerkNewConsult);
仿真后的参数变化运行:
KneeClinicDataExport.setCellValue(root.waitClerkTime.mean(), 1, row + 1, 1);
KneeClinicDataExport.setCellValue(root.waitClerkTimeMorn.mean(), 1, row + 1, 2);
KneeClinicDataExport.setCellValue(root.waitClerkTimeAft.mean(), 1, row + 1, 3);
KneeClinicDataExport.setCellValue(root.waitClerkTimeFollowUp.mean(), 1, row + 1, 4);
KneeClinicDataExport.setCellValue(root.waitClerkTimeMornFollowUp.mean(), 1, row + 1, 5);
KneeClinicDataExport.setCellValue(root.waitClerkTimeAftFollowUp.mean(), 1, row + 1, 6);
KneeClinicDataExport.setCellValue(root.waitClerkTimeNewConsult.mean(), 1, row + 1, 7);
KneeClinicDataExport.setCellValue(root.waitClerkTimeMornNewConsult.mean(), 1, row + 1, 8);
KneeClinicDataExport.setCellValue(root.waitClerkTimeAftNewConsult.mean(), 1, row + 1, 9);
KneeClinicDataExport.setCellValue(root.waitClerkTimeRevision.mean(), 1, row + 1, 10);
KneeClinicDataExport.setCellValue(root.waitClerkTimeMornRevision.mean(), 1, row + 1, 11);
KneeClinicDataExport.setCellValue(root.waitClerkTimeAftRevision.mean(), 1, row + 1, 12);
row++;
您遇到此问题的原因是您没有在 if 语句中使用括号
在下面的例子中,两个语句都在条件为真时执行
if(conditions){
statementA;
statementB;
}
下面的例子中,当条件为真时只执行statementA,而statementB总是执行
if(conditions)
statementA;
statementB;