声明并初始化三维数组

akx*_*xlr 5 julia

我想用常量条目初始化Julia中的三维数组.对于我可以使用的2d案例

A = [1 2; 3 4]
Run Code Online (Sandbox Code Playgroud)

是否有类似的3D数组短语法?

cna*_*aak 7

可以使用catreshape函数来完成任务:(使用 Julia-1.0.0 测试):

julia> cat([1 2; 3 4], [5 6; 7 8], dims=3)
2×2×2 Array{Int64,3}:
[:, :, 1] =
 1  2
 3  4

[:, :, 2] =
 5  6
 7  8
Run Code Online (Sandbox Code Playgroud)

对于更高的Array维度,cat调用必须嵌套:cat(cat(..., dims=3), cat(..., dims=3), dims=4)

reshape函数允许Arrays“一次”构建更高维度,即无需嵌套调用:

julia> reshape([(1:16)...], 2, 2, 2, 2)
2×2×2×2 Array{Int64,4}:
[:, :, 1, 1] =
 1  3
 2  4

[:, :, 2, 1] =
 5  7
 6  8

[:, :, 1, 2] =
  9  11
 10  12

[:, :, 2, 2] =
 13  15
 14  16
Run Code Online (Sandbox Code Playgroud)


Iai*_*ing 6

不是在这个时候,虽然以下内容不是太糟糕

A = zeros(2,2,2)
A[:,:,1] = [1 2; 3 4]
A[:,:,2] = [10 20; 30 40]
Run Code Online (Sandbox Code Playgroud)