【发布时间】:2021-12-07 20:53:14
【问题描述】:
我创建了包含三个 2D 数组的 3D 数组 me。例如,我想删除第二个数组 [:,:,2] 并将结果复制到一个名为 you 的新数组中。
我尝试了deleteat!(me, :,:,2),但它给了我一个错误。
me = reshape(1:(5*5*3), 5, 5, 3)
【问题讨论】:
标签: julia
我创建了包含三个 2D 数组的 3D 数组 me。例如,我想删除第二个数组 [:,:,2] 并将结果复制到一个名为 you 的新数组中。
我尝试了deleteat!(me, :,:,2),但它给了我一个错误。
me = reshape(1:(5*5*3), 5, 5, 3)
【问题讨论】:
标签: julia
首先,3-tensor 不是数组的数组,Julia 内置了 N 维数组支持。
既然您已经认识到不复制就无法做到这一点(这正是deleteat!() 不起作用的原因),最简单的方法是:
julia> me[:,:,[1,3]]
5×5×2 Array{Int64, 3}:
[:, :, 1] =
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
[:, :, 2] =
51 56 61 66 71
52 57 62 67 72
53 58 63 68 73
54 59 64 69 74
55 60 65 70 75
可以在以下位置找到系统地排除索引的其他方法: Exclude elements of Array based on index (Julia)
【讨论】: