Альтернативы многим вложенным в петли? - PullRequest
0 голосов
/ 28 июня 2018

для научных целей я должен снова и снова оценивать функцию из 8 параметров для этих параметров, которые принимают значения в некоторых диапазонах.

Есть ли что-то более умное (и более эффективное выполнение), чем простой код с 8 вложенными циклами?

спасибо

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете использовать Iterators.product, который объединяет несколько итераторов, например:

julia> for (i, j, k) in Iterators.product(1:2, 5:6, -2:-1)
       println("hi, $i, $j and $(k)!")
       end
hi, 1, 5 and -2!
hi, 2, 5 and -2!
hi, 1, 6 and -2!
hi, 2, 6 and -2!
hi, 1, 5 and -1!
hi, 2, 5 and -1!
hi, 1, 6 and -1!
hi, 2, 6 and -1!

Вы также можете вернуть его как кортеж, в который вы индексируете, например:

julia> for K in Iterators.product(1:2, 5:6, -2:-1)
       println("hi, $(K[1]), $(K[2]) and $(K[3])!")
       end
hi, 1, 5 and -2!
hi, 2, 5 and -2!
hi, 1, 6 and -2!
hi, 2, 6 and -2!
hi, 1, 5 and -1!
hi, 2, 5 and -1!
hi, 1, 6 and -1!
hi, 2, 6 and -1!
...