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

ecj*_*cjb 2 element vector broadcasting julia

我想按元素(或广播)检查向量 x 的元素是否在 Julia 中的向量 y 中,就像函数checkin所做的那样:

\n\n
x = ["one", "two", "three", "four"]\ny = ["two", "three", "five", "four"]\n\nfunction checkin(x,y)\n    for i = 1:length(y)\n        if y[i] \xe2\x88\x88 x\n            println(true)\n        else \n            println(false)\n        end\n    end\nend\ncheckin(x,y)\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出:

\n\n
true\ntrue\nfalse\ntrue\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我输入

\n\n
x .\xe2\x88\x88 y\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者

\n\n
x .in y\n
Run Code Online (Sandbox Code Playgroud)\n\n

我收到一个错误

\n\n

通常,我确信存在一种更简单的方法来做到这一点,例如编写 9 行函数,但我找不到它

\n

Bog*_*ski 6

使用:

in.(y, Ref(x))
Run Code Online (Sandbox Code Playgroud)

您必须换xRef或编写(x, )or[x]以便使广播始终采用x而不是迭代它。

请注意,我编写它是为了让您检查是否y[i]xfor中i in eachindex(y),因为这是您的参考实现的完成方式。