我正在进行大量的运行,其中大部分将被中止。我可以写一个删除中止运行的最终命令,以加快进程和/或缩小我的csv文件吗?
答案 0 :(得分:2)
没有什么可以让你以直截了当的方式做到这一点。而且无论如何它都不会真正加快速度。
除非csv文件的大小确实存在问题,否则最简单的方法就是在您使用的任何数据分析程序中过滤掉中止的运行。
我能想到的唯一选择就是编写自己的实验代码。假设你有一个Range
的记者,而你stop-condition?
当一个游戏被中止时,你可以做一些事情:
set aborted? true
这假定extensions [ csv ]
globals [ aborted? ]
to experiment
let run-number 1
let file-name "experiment.csv"
if file-exists? file-name [ file-delete file-name ]
file-open file-name
foreach [ 1 2 3 ] [ ; vary x
set x ?
foreach [ "a" "b" "c" ] [ ; vary y
set y ?
set run-number run-number + 1
setup
while [ not stop-condition? ] [ go ]
if not aborted? [
file-print csv:to-row (list
run-number
x
y
(count turtles)
; whatever else you want to measure...
)
]
if run-number mod 10 = 0 [ file-flush ]
]
]
file-close-all
end
和x
分别是滑块和选择器小部件。如果您想改变全局变量,则必须注意不要在设置中调用y
来覆盖它们。
正如您所看到的,所有这些都远非理想,可能容易出错。