2014-05-10 1 views
3

J'essaie de construire toutes les combinaisons possibles de quatre vecteurs (paramètres dans un modèle) qui me donneraient une grande matrice nx4 et je pourrais ensuite lancer une simulation sur chaque ensemble (rangée) de paramètres. En R je réaliserais cela en utilisant expand.grid dans le style de Mathematica, je pourrais utiliser quelque chose comme produit externe avec vcat et réduire la sortie en utilisant hcat.Existe-t-il une fonction de carte externe dans Julia?

Existe-t-il une fonction analogue à expand.grid de R ou à la fonction de carte externe?

exemple Toy:

A = [1 2] 
B = [3 4] 

some magic 

output = [1 3, 1 4, 2 3, 2 4] 

Répondre

3

Utilisation du package itérateurs, il pourrait ressembler à ceci:

using Iterators 
for p in product([1,2], [3,4]) 
    println(p) 
end 

où vous devez remplacer println avec votre algorithme. Vous pouvez également utiliser collect s'il est important d'obtenir l'ensemble de toutes les combinaisons.

1

Pas la notation exacte que vous montrez, mais une compréhension pourrait être utile.

julia> a=[1, 2]; 

julia> b=[3, 4]; 

julia> [[i, j] for j in b, i in a] 
2x2 Array{Any,2}: 
[1,3] [2,3] 
[1,4] [2,4] 

julia> [[i, j] for j in b, i in a][:] 
4-element Array{Any,1}: 
[1,3] 
[1,4] 
[2,3] 
[2,4] 
Questions connexes