When running the code twice as:
include("call_experiment.jl")
args =["4", "1000", "f1", "1234", "2", "2","summary"]
experiment(args)
experiment(args)
I get the following error
ERROR: BoundsError: attempt to access 4×1000 Array{Float64,2} at index [5, Base.Slice(Base.OneTo(1000))]
Stacktrace:
[1] throw_boundserror(::Array{Float64,2}, ::Tuple{Int64,Base.Slice{Base.OneTo{Int64}}}) at ./abstractarray.jl:434
[2] checkbounds at ./abstractarray.jl:362 [inlined]
[3] macro expansion at ./multidimensional.jl:494 [inlined]
[4] _getindex(::IndexLinear, ::Array{Float64,2}, ::Int64, ::Base.Slice{Base.OneTo{Int64}}) at ./multidimensional.jl:491
[5] final_output(::Array{Float64,2}, ::Int64, ::Array{Any,1}, ::Array{Any,1}, ::Int64) at /DistributedMachineLearningThesis/src/master_summary.jl:163
[6] run_experiments(::Int64, ::Int64, ::String, ::Int64, ::Int64, ::String) at /DistributedMachineLearningThesis/src/master_summary.jl:395
[7] execute_experiment(::Array{String,1}) at /DistributedMachineLearningThesis/src/master_summary.jl:474
[8] experiment(::Array{String,1}, ::Vararg{Array{String,1},N} where N) at /DistributedMachineLearningThesis/src/call_experiment.jl:21
It is because ids are not reset between the runs. So in the second experiment(args) ids are 5,6,7,8 instead of 1,2,3,4. This is incompatible with how the code works.