如何在Julia中逐行填充数组

时间:2016-01-27 16:13:33

标签: arrays julia

我想在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

有没有办法说服它按行填写?感觉应该有一个明显的答案,但我还没有找到答案。

3 个答案:

答案 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

然而,在你的具体案例中,这是其他建议中最慢的。