给定一个for循环,是否有一些宏/函数对循环的每次迭代进行多次,并将此信息作为元组或数组(或类似的(返回?有没有任何方法可以将这样的元组或数组分配给变量(例如,我不知道如何将@time宏的输出分配给变量(。我知道@timed宏,但不知道如何提取@timed赋予/分配给变量的元组。下面是一个for循环的例子,其中每个迭代都可能是定时的?
for x=1:10
println("$x is my number.")
end
这样?
function timeloop(n)
tvec = zeros(n)
for x = 1:n
t = @elapsed println("$x is my number.")
tvec[x] = t
end
tvec
end
timeloop(9)
1 is my number.
2 is my number.
3 is my number.
4 is my number.
5 is my number.
6 is my number.
7 is my number.
8 is my number.
9 is my number.
9-element Vector{Float64}:
0.0002649
0.0001195
0.0001018
9.44e-5
8.25e-5
6.8e-5
8.52e-5
7.39e-5
8.5e-5
根据Julia的帮助,@elapsed
是一个用于计算表达式的宏,它会丢弃结果值,而不是将执行所需的秒数作为浮点数返回。
对于定时多行表达式/语句,请使用t = @elapsed begin .. end
形式。