Arrays 如何在Julia中按行填充数组
我想用Julia语言逐行填充数组对象。Arrays 如何在Julia中按行填充数组,arrays,julia,Arrays,Julia,我想用Julia语言逐行填充数组对象。 重塑函数希望按列填充(Julia是列的主要部分) 有没有办法说服它按行填写?感觉应该有一个显而易见的答案,但我还没有找到。一个建议: 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 使用数组理解: julia> [i+5*j for j=0:2,i
重塑
函数希望按列填充(Julia是列的主要部分)
有没有办法说服它按行填写?感觉应该有一个显而易见的答案,但我还没有找到。一个建议:
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
使用数组理解:
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倍)。是处理更通用的多路阵列时的另一种选择
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
但是,在您的具体案例中,它是其他建议中速度最慢的。谢谢,
是否有一个名称,以便我可以在谷歌上搜索更多关于它的信息?管道?功能组合<代码>重塑(1:15,5,3)|>转置只是另一种写转置(重塑(1:15,5,3))
当元素在数组中时,比如A=['A','b','c','d','e',1,2,3,4,5,1,2,3,4,5]如何修改这种方法
?(不同的类型仅用于强调,而不是减慢速度)没关系,只需将其应用于A
:[A[i+5*j]的索引,对于j=0:2,i=1:5]
。这是些小把戏…打败我吧。。。我正要写这个!但我的总体印象是理解是缓慢的,它们通常很快,而且需要更少的分配(转置是复制的)。
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