如何在julia中使用嵌套列表理解

如何在julia中使用嵌套列表理解,julia,Julia,如何将以下代码转换成嵌套列表 node_x = 5 node_y = 5 node_z = 5 xyz = Matrix(undef, node_x*node_y*node_z,3) ii = 0 dx = 1.0 for k in 0:node_z-1 for j in 0:node_y-1 for i in 0:node_x-1 x = i * dx y = j * dx

如何将以下代码转换成嵌套列表

node_x = 5
node_y = 5
node_z = 5
xyz = Matrix(undef, node_x*node_y*node_z,3)
ii = 0
dx = 1.0
    for k in 0:node_z-1
        for j in 0:node_y-1
            for i in 0:node_x-1
                x = i * dx
                y = j * dx
                z = k * dx
                ii += 1
                #println([x, y, z])
                xyz[ii, 1] = x
                xyz[ii, 2] = y
                xyz[ii, 3] = z
            end
        end
    end
在python和numpy中,我可以编写如下代码

xyz = np.array([[i*dx, j*dx, k*dx] for k in range(node_z) for j in range(node_y) for i in range(node_x)])
可以完全相同地嵌套,只是
range
有点不同,但是在您的例子中有
start:end
语法:

julia> [[i*dx, j*dx, k*dx] for k in 1:node_z for j in 1:node_y for i in 1:node_x]
125-element Vector{Vector{Float64}}:
 [1.0, 1.0, 1.0]
 [2.0, 1.0, 1.0]
 ⋮
 [4.0, 5.0, 5.0]
 [5.0, 5.0, 5.0]
要获得与Python示例相同的数组,必须排列3元素向量的维度并连接列表:

julia> vcat(([i*dx j*dx k*dx] for k in 1:node_z for j in 1:node_y for i in 1:node_x)...)
125×3 Matrix{Float64}:
 1.0  1.0  1.0
 2.0  1.0  1.0
 ⋮
 4.0  5.0  5.0
 5.0  5.0  5.0

非常感谢你。这正是我想要做的。@hrdhrd0422如果解决了您的问题,请接受答案。我不熟悉堆栈溢出。对此我很抱歉。