Sak*_*.JJ 5 multidimensional-array julia tensor
我在用Julia1.6
这里,X是一个D阶多维数组。如何在 的第 轴上从i到进行切片?jdX
D=6这是和情况下的示例d=4。
X = rand(3,5,6,6,5,6)
Y = X[:,:,:,i:j,:,:]
Run Code Online (Sandbox Code Playgroud)
i在上例中,和j的给定值都小于 6。
您可以使用内置函数selectdim
help?> selectdim\nsearch: selectdim\n\n selectdim(A, d::Integer, i)\n\n Return a view of all the data of A where the index for dimension d equals i.\n\n Equivalent to view(A,:,:,...,i,:,:,...) where i is in position d.\n\n Examples\n \xe2\x89\xa1\xe2\x89\xa1\xe2\x89\xa1\xe2\x89\xa1\xe2\x89\xa1\xe2\x89\xa1\xe2\x89\xa1\xe2\x89\xa1\xe2\x89\xa1\xe2\x89\xa1\n\n julia> A = [1 2 3 4; 5 6 7 8]\n 2\xc3\x974 Matrix{Int64}:\n 1 2 3 4\n 5 6 7 8\n\n julia> selectdim(A, 2, 3)\n 2-element view(::Matrix{Int64}, :, 3) with eltype Int64:\n 3\n 7\nRun Code Online (Sandbox Code Playgroud)\n其用途如下:
\njulia> a = rand(10,10,10,10);\n\njulia> selectedaxis = 5\n5\n\njulia> indices = 1:2\n1:2\n\njulia> selectdim(a,selectedaxis,indices)\nRun Code Online (Sandbox Code Playgroud)\n请注意,在文档示例中,i 是一个整数,但您可以使用以下形式的范围i:j也可以使用以下形式的范围。