vector - Julia - 按元素检查向量 x 的元素是否在向量 y 中

标签 vector julia element broadcasting

我想逐元素(或广播)检查向量 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 行函数,但我找不到它

最佳答案

使用:

in.(y, Ref(x))

你必须把x包在Ref中或者按顺序写(x, )[x]使广播始终采用 x 而不是对其进行迭代。

请注意,我写它是为了让您检查 y[i] 是否在 x 中 for i in eachindex(y) 因为这是您的引用实现的完成方式。

关于vector - Julia - 按元素检查向量 x 的元素是否在向量 y 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54616565/

相关文章:

dataframe - 如何过滤 julia 数据框?

c++ - 为什么这个循环是无限的?

c++ - 遍历成对的 vector 并访问第一个和第二个元素

c++ - 附加到具有非动态分配堆栈的 vector

julia - 按 Julia 中列中值的顺序出现对 DataFrame 进行分组

debugging - 来自 Julia REPL 的 "Watch"长数组?

javascript - 在 Javascript 中循环访问 SVG 文件

javascript - 子级继承父级所有属性的方式

javascript - 谁能解释一下这个关键字的行为

matlab - 在 Octave 中加载输入文件并创建向量和矩阵