我想逐个检查(或广播)矢量x的元素是否在Julia中的矢量y中,就像函数checkin
所做的那样:
x = ["one", "two", "three", "four"]
y = ["two", "three", "five", "four"]
function checkin(x,y)
for i = 1:length(y)
if y[i] ∈ x
println(true)
else
println(false)
end
end
end
checkin(x,y)
输出:
true
true
false
true
如果我输入
x .∈ y
或
x .in y
我收到错误
通常,我确信写9行函数存在一种更简单的方法,但是我找不到它
答案 0 :(得分:4)
使用:
a = [ 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1]
result = diff(find([ 1 diff(a) 1]))
result =
2 4 1 1 1 5 3
您必须将in.(y, Ref(x))
包裹在x
中或写Ref
或(x, )
才能使广播始终占用[x]
而不是对其进行迭代。
请注意,我已经编写了它,以便您检查x
的{{1}}是否在y[i]
中,因为这是完成参考实现的方式。