矢量化形式的`in`在朱莉娅

时间:2017-05-24 10:22:34

标签: julia

我试图找到一个向量的索引,其中元素包含在另一个向量中。例如,让a = [2, 4, 6, 8]b = [2, 6],所需的输出将是向量[1, 3]。我尝试了find(a .in b),但a .in b是语法错误。矢量化形式in.(a, b)会引发DimensionMismatch错误,因为矢量无法广播到常见形状,而in.(a, b')允许广播,结果:

true   false
false  false
false  true
false  false

不太理想。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

正如Alex Riley指出的那样,引用的问题/答案可用于解决此问题

julia> a = [2, 4, 6, 8]
    4-element Array{Int64,1}:
     2
     4
     6
     8

julia> b = [2, 6]
2-element Array{Int64,1}:
 2
 6

julia> find(in.(a, (b, )))
2-element Array{Int64,1}:
 1
 3

答案 1 :(得分:0)

您需要indexin

a = [2, 4, 6, 8]
b = [2, 6]
indexin(b,a) # returns [1,3]