是否可以在 julia 中交错两个数组?
例如,如果a=[1:10]和b=[11:20]我希望能够返回
20-element Array{Int64,1}:
1
11
2
12
3
13
4
14
.
.
.
Run Code Online (Sandbox Code Playgroud)
有点类似于 ruby 可以做的在 Ruby 中合并和交错两个数组
有一种简单的方法可以做到这一点,而无需使用该reshape()函数。特别是,我们可以将向量绑定到矩阵中,然后使用[:]该矩阵的转置。例如:
julia> a = 1:10
julia> b = 11:20
julia> [a b]'[:]
20-element Array{Int64,1}:
1
11
2
12
3
13
.
.
.
20
Run Code Online (Sandbox Code Playgroud)
对矩阵进行转置[a b]得到一个 2×10 矩阵,然后[:]以向量的形式返回其所有元素。[:]对我们来说如此有效的原因是因为 Julia 使用列优先排序。
弄清楚了!
reshape([a b]',20,1)
Run Code Online (Sandbox Code Playgroud)
对于更一般的事情:
reshape([a b].',size(a,1)+size(b,1),1)
Run Code Online (Sandbox Code Playgroud)
我们可以使用 hack 来获取向量而不是一维数组:
reshape([a b].',size(a,1)+size(b,1),1)[:]
Run Code Online (Sandbox Code Playgroud)