使用 Julia 1.1,我想基于范围向量创建点网格
\n\n当使用这段代码时,它给了我一个这样的点的列表
\n\nu = [[i j ] for i in -1:0.5:1, j in -1:0.5:1]\n[u...]\nRun Code Online (Sandbox Code Playgroud)\n\n但是,我无法开发一种更通用的方法,在给定范围数组时创建这样的多维点向量
\n\n例如,开发一个 createGrid 函数,它将采用 n 个范围的向量作为参数并输出所有点的列表。
\n\ncreateGrid([1.:0.5:0., 1.:0.5:0., 1.:0.5:0.])\nRun Code Online (Sandbox Code Playgroud)\n\n这将输出:
\n\n27-element Array{Array{Float64,2},1}:\n [-1.0 -1.0 -1.0]\n [-0.5 -1.0 -1.0]\n [0.0 -1.0 -1.0] \n [-1.0 -0.5 -1.0]\n [-0.5 -0.5 -1.0]\n [0.0 -0.5 -1.0] \n [-1.0 0.0 -1.0] \n [-0.5 0.0 -1.0] \n [0.0 0.0 -1.0] \n [-1.0 -1.0 -0.5]\n [-0.5 -1.0 -0.5]\n [0.0 -1.0 -0.5] \n [-1.0 -0.5 -0.5]\n \xe2\x8b\xae \nRun Code Online (Sandbox Code Playgroud)\n\n感谢您的任何建议
\n看一眼Iterators.product。它不会创建Arrays,而是创建一个对象,您可以迭代以获取网格的每个新元素作为 a Tuple(这实际上通常是您想要的)。
julia> p = Iterators.product(-1.:0.5:0., -1.:0.5:0., -1.:0.5:0.);\njulia> println.(p);\n(-1.0, -1.0, -1.0)\n(-0.5, -1.0, -1.0)\n(0.0, -1.0, -1.0)\n(-1.0, -0.5, -1.0)\n(-0.5, -0.5, -1.0)\n(0.0, -0.5, -1.0)\n(-1.0, 0.0, -1.0)\n\xe2\x8b\xae \nRun Code Online (Sandbox Code Playgroud)\n