首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NetLogo :如何让模型在等待文件时暂停

NetLogo :如何让模型在等待文件时暂停
EN

Stack Overflow用户
提问于 2020-04-23 04:27:12
回答 1查看 50关注 0票数 1

我正在构建一个需要与另一个模型(不是NetLogo)集成的NetLogo模型。因此,如果将NetLogo模型设置为连续运行,则在每个刻度时,我希望它等待由链接模型创建的文件出现在父文件夹中。一旦该文件出现,NetLogo就会将其读入并继续执行Go中指定的所有步骤。所以从本质上讲,我希望NetLogo在等待文件时暂停,然后在文件出现后恢复。我尝试使用'while‘函数,但它不起作用。

例如,当我这样设置它时

代码语言:javascript
复制
to go

while [file-exists? "biosim.asc"][

grow-grass
grow-herd
delete-biosim
tick]

在这里,NetLogo读取biosim文件,在过程grow-grass、grow-grow完成后,程序删除ascii文件biosim。理想情况下,我希望它等待一个名为biosim的新文件出现在工作文件夹中,然后重复这些步骤。上面的代码没有得到我想要的东西。任何帮助都将不胜感激。

谢谢,Rekha

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-23 05:29:03

如果在文件不在的情况下使用while循环保持运行,然后将操作放在循环之外,会发生什么情况?例如:

代码语言:javascript
复制
to go
  while [not file-exists? "biosim.asc"] [wait 1]
  grow-grass
  grow-herd
  delete-biosim
  tick
end

您可能只需使用[]而不是wait,但我怀疑这将是相当低效的,因为它将不断检查。相反,它每隔1秒检查一次(当然,您可以根据文件创建的频率将检查设置得更短或更长),一旦文件存在,它就会转移到其他代码。

另一种选择取决于另一种模型内置的语言。如果它类似于java中的R,那么您可以从该代码控制NetLogo模型,并直接耦合模型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61374543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档