Я пытаюсь запустить 2 цикла for для доступа к 2 элементам в массиве (например,)
x = 100
for i in eachindex(x-1)
for j in 2:x
doSomething = Array[i] + Array[j]
end
end
И часто (не всегда) я получаю эту ошибку или аналогичную:
LoadError: BoundsError: attempt to access 36-element Array{Any,1} at index [64]
Я понимаю, что есть правильные способы запуска этих циклов, чтобы избежать ошибок границ, поэтому я использую eachindex(x-1) == 1:x
, как бы я сделал это для 2:x
?
Я относительно новичок в Юлии, если это не причина ошибки границ, то что это может быть? - Спасибо
РЕДАКТИРОВАТЬ: укороченная версия того, что я пытаюсь запустить (также да, векторные массивы)
all_people = Vector{type_person}() # 1D Vector of type person
size = length(all_people)
... fill vector array to create an initial population of people ...
# Now add to the array using existing parent objects
for i in 1:size-1
for j in 2:size
if all_people[i].age >= all_people[j].age # oldest parent object forms child variable
child = type_person(all_people[i])
else
child = type_person(all_people[j])
end
push!(all_people, child) # add to the group of people
end
end
Array
сбивает с толку и/или неверно. - person StefanKarpinski   schedule 14.06.2020Array
? Этот фрагмент отлично работает для меня - person San   schedule 14.06.2020all_people
имеет размер 36, но вы пытаетесь получить доступ к индексу выше этого. - person San   schedule 14.06.2020size
иlength(all_people)
непосредственно перед циклами 2 for, чтобы убедиться, что они одинаковы. - person San   schedule 14.06.2020