Ваша проблема может быть решена с помощью вещания :
julia> f(x, y) = (x,y) # trivial example
f (generic function with 1 method)
julia> f.([1 2 3]', [4 5 6 7])
3×4 Array{Tuple{Int64,Int64},2}:
(1, 4) (1, 5) (1, 6) (1, 7)
(2, 4) (2, 5) (2, 6) (2, 7)
(3, 4) (3, 5) (3, 6) (3, 7)
Простое в a'
транспонирует a
, чтобы формы работали правильно.
Но обратите внимание, что a = [ 1 2 3 ]
создает 1×3 Array{Int64,2}
, который является матрицей. Для вектора (то, что вы, вероятно, называете «массивом»), используйте запятые: a = [ 1, 2, 3 ]
и т. Д. Если у вас есть данные в этой форме, вы должны транспонировать наоборот:
julia> f.([1,2,3], [4,5,6,7]')
3×4 Array{Tuple{Int64,Int64},2}:
(1, 4) (1, 5) (1, 6) (1, 7)
(2, 4) (2, 5) (2, 6) (2, 7)
(3, 4) (3, 5) (3, 6) (3, 7)
Кстати, это называется «внешним произведением» (для f = *
) или его обобщением. И если f
является оператором ∘
, вы можете использовать вещание с инфиксной точкой: a' ∘. b
.