phi*_*inz 4 multidimensional-array julia
考虑两个不同大小的矩阵
\njulia> A= ones(Float64,3,3)\n3\xc3\x973 Matrix{Float64}:\n 1.0 1.0 1.0\n 1.0 1.0 1.0\n 1.0 1.0 1.0\n\njulia> B = ones(Float64,2,2)\n2\xc3\x972 Matrix{Float64}:\n 1.0 1.0\n 1.0 1.0\nRun Code Online (Sandbox Code Playgroud)\n有没有简写
\njulia> A[1:size(B)[1],1:size(B)[2]]\n2\xc3\x972 Matrix{Float64}:\n 1.0 1.0\n 1.0 1.0\nRun Code Online (Sandbox Code Playgroud)\n以像“”这样的好函数的形式julia> A[indices(B)](不幸的是它不存在ERROR: UndefVarError: indices not defined)?
您可以调用axes(B)以获取包含有效索引的元组B:
julia> A = ones(3, 3)\n3\xc3\x973 Matrix{Float64}:\n 1.0 1.0 1.0\n 1.0 1.0 1.0\n 1.0 1.0 1.0\n\njulia> B = ones(2, 2)\n2\xc3\x972 Matrix{Float64}:\n 1.0 1.0\n 1.0 1.0\n\njulia> axes(B)\n(Base.OneTo(2), Base.OneTo(2))\nRun Code Online (Sandbox Code Playgroud)\n因此,您可以解压元组并将其用于索引A:
julia> A[axes(B)...]\n2\xc3\x972 Matrix{Float64}:\n 1.0 1.0\n 1.0 1.0\nRun Code Online (Sandbox Code Playgroud)\n正如 Bogumil Kaminski 在评论中指出的那样,您还可以使用CartesianIndices:
julia> A[CartesianIndices(B)]\n2\xc3\x972 Matrix{Float64}:\n 1.0 1.0\n 1.0 1.0\nRun Code Online (Sandbox Code Playgroud)\n