arrays - Julia 中离散范围的切片矩阵

标签 arrays matrix julia slice

给定一个二维矩阵:

arr = rand(10,10)

我想按离散范围对其进行切片,例如第 2 至 4 行,然后是第 6 至 8 行,形成一个 6x10 矩阵。 由于我没有找到类似的现有问题和解决方案,我尝试了

arr[[2:4,6:8],:]
arr[[[2:4],[6:8]],:]

和类似的东西,但这些不起作用。

我可以用

vcat(arr[2:4,:],arr[6:8,:])

然而,这似乎很尴尬,有没有更好的方法在 julia 中按离散范围进行切片? 谢谢。

最佳答案

你几乎是正确的。这是这样做的方法:

julia> arr = [(i,j) for i in 1:10, j in 1:10]
10×10 Array{Tuple{Int64,Int64},2}:
 (1, 1)   (1, 2)   (1, 3)   (1, 4)   (1, 5)   (1, 6)   (1, 7)   (1, 8)   (1, 9)   (1, 10)
 (2, 1)   (2, 2)   (2, 3)   (2, 4)   (2, 5)   (2, 6)   (2, 7)   (2, 8)   (2, 9)   (2, 10)
 (3, 1)   (3, 2)   (3, 3)   (3, 4)   (3, 5)   (3, 6)   (3, 7)   (3, 8)   (3, 9)   (3, 10)
 (4, 1)   (4, 2)   (4, 3)   (4, 4)   (4, 5)   (4, 6)   (4, 7)   (4, 8)   (4, 9)   (4, 10)
 (5, 1)   (5, 2)   (5, 3)   (5, 4)   (5, 5)   (5, 6)   (5, 7)   (5, 8)   (5, 9)   (5, 10)
 (6, 1)   (6, 2)   (6, 3)   (6, 4)   (6, 5)   (6, 6)   (6, 7)   (6, 8)   (6, 9)   (6, 10)
 (7, 1)   (7, 2)   (7, 3)   (7, 4)   (7, 5)   (7, 6)   (7, 7)   (7, 8)   (7, 9)   (7, 10)
 (8, 1)   (8, 2)   (8, 3)   (8, 4)   (8, 5)   (8, 6)   (8, 7)   (8, 8)   (8, 9)   (8, 10)
 (9, 1)   (9, 2)   (9, 3)   (9, 4)   (9, 5)   (9, 6)   (9, 7)   (9, 8)   (9, 9)   (9, 10)
 (10, 1)  (10, 2)  (10, 3)  (10, 4)  (10, 5)  (10, 6)  (10, 7)  (10, 8)  (10, 9)  (10, 10)

julia> arr[[2:4; 6:8], :]
6×10 Array{Tuple{Int64,Int64},2}:
 (2, 1)  (2, 2)  (2, 3)  (2, 4)  (2, 5)  (2, 6)  (2, 7)  (2, 8)  (2, 9)  (2, 10)
 (3, 1)  (3, 2)  (3, 3)  (3, 4)  (3, 5)  (3, 6)  (3, 7)  (3, 8)  (3, 9)  (3, 10)
 (4, 1)  (4, 2)  (4, 3)  (4, 4)  (4, 5)  (4, 6)  (4, 7)  (4, 8)  (4, 9)  (4, 10)
 (6, 1)  (6, 2)  (6, 3)  (6, 4)  (6, 5)  (6, 6)  (6, 7)  (6, 8)  (6, 9)  (6, 10)
 (7, 1)  (7, 2)  (7, 3)  (7, 4)  (7, 5)  (7, 6)  (7, 7)  (7, 8)  (7, 9)  (7, 10)
 (8, 1)  (8, 2)  (8, 3)  (8, 4)  (8, 5)  (8, 6)  (8, 7)  (8, 8)  (8, 9)  (8, 10)

注意 ; 不是 ,[2:4; 6:8]Here您可以在 Julia 中找到有关串联功能的更多信息。

关于arrays - Julia 中离散范围的切片矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65541891/

相关文章:

java - 如何使用 Java 将数组参数设置为变量

c - 指针数组内容在传递给 C 中的函数时被删除

c++ - 生成范围内的随机数,不重复

c - 将矩阵的主对角线与数字相乘

concurrency - Julia 语言 - @async tasks::Current-Directory 中的状态

c - Julia - C 结构中的固定大小数组

python - Numpy 与 bool 索引和广播的混淆

c++ - 需要有关二维数组的建议

matrix - LAPACK 给我错误的特征值

list - 如何列出特定 Julia 函数的所有重载?