我想在Julia语言中逐行填充Array对象。
reshape
函数想要按列填充(Julia是列专业)。
julia> reshape(1:15, 3,5)
3x5 Array{Int64,2}:
1 4 7 10 13
2 5 8 11 14
3 6 9 12 15
有没有办法说服它按行填写?感觉应该有一个明显的答案,但我还没有找到答案。
答案 0 :(得分:5)
使用数组理解:
julia> [i+5*j for j=0:2,i=1:5]
3x5 Array{Int64,2}:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
啊,它比其他建议快10倍以上(实际上,在我的初始基准测试中是令人尴尬的100倍)。
答案 1 :(得分:4)
一个建议:
julia> reshape(1:15, 5, 3) |> transpose
3x5 Array{Int64,2}:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
答案 2 :(得分:2)
permutedims
是另一种选择。
julia> permutedims(reshape(1:24, 2,3,4), [2,1,3])
3x2x4 Array{Int64,3}:
[:, :, 1] =
1 2
3 4
5 6
[:, :, 2] =
7 8
9 10
11 12
[:, :, 3] =
13 14
15 16
17 18
[:, :, 4] =
19 20
21 22
23 24
然而,在你的具体案例中,这是其他建议中最慢的。