2014-05-10 112 views
3

我想构建四个向量(模型中的参数)的所有可能的组合,它们会给我一个大的nx4矩阵,然后我可以在每组参数(行)上运行模拟。在R中,我将通过在Mathematica风格中使用expand.grid来实现这一点,我可以使用外部产品与vcat之类的东西,并使用hcat减少输出。Julia有外部地图功能吗?

是否有一些来自R或外部映射函数的函数expand.grid

玩具例子:

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

some magic 

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

回答

3

使用迭代器包,它可能是这样的:

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

,你将与你的算法替换println。如果获取所有组合的集合很重要,也可以使用collect

1

不是您显示的确切表示法,而是理解可能有用。

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]