如何在Julia中删除范围构造中的选定元素?
从中我发现,在范围构造中,无法通过数组函数找到并替换其元素。。。你怎么能这么做呢如何在Julia中删除范围构造中的选定元素?,julia,Julia,从中我发现,在范围构造中,无法通过数组函数找到并替换其元素。。。你怎么能这么做呢 假设我想删除range(1,step=1,stop=21)中的元素2,6,7,8,13,19。或者更一般地说,假设a是一个随机数组,其中包含范围[1,21]中的数字,并且希望删除给定范围内的这些元素。您不能从范围对象中删除,因为它是不可变的,但您可以筛选它: julia> filter(x -> x ∉ [2,6,7,8,13,19], a) 15-element Array{Int64,1}: 1
假设我想删除
range(1,step=1,stop=21)
中的元素2,6,7,8,13,19
。或者更一般地说,假设a
是一个随机数组,其中包含范围[1,21]
中的数字,并且希望删除给定范围内的这些元素。您不能从范围对象中删除,因为它是不可变的,但您可以筛选它:
julia> filter(x -> x ∉ [2,6,7,8,13,19], a)
15-element Array{Int64,1}:
1
3
4
5
9
10
11
12
14
15
16
17
18
20
21
但是,如果a
是“真实”数组,则可以使用filter
就地运行。另一种解决方案,如果方便的话,可以使用InvertoDices.jl软件包,该软件包导出而非
,您只需使用索引即可:
julia> r = 1:21
1:21
julia> x = [2,6,7,8,13,19]
6-element Array{Int64,1}:
2
6
7
8
13
19
julia> r[Not(x)]
15-element Array{Int64,1}:
1
3
4
5
9
10
11
12
14
15
16
17
18
20
21