ecj*_*cjb 2 element vector broadcasting julia
我想按元素(或广播)检查向量 x 的元素是否在 Julia 中的向量 y 中,就像函数checkin
所做的那样:
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\ntrue\ntrue\nfalse\ntrue\n
Run Code Online (Sandbox Code Playgroud)\n\n如果我输入
\n\nx .\xe2\x88\x88 y\n
Run Code Online (Sandbox Code Playgroud)\n\n或者
\n\nx .in y\n
Run Code Online (Sandbox Code Playgroud)\n\n我收到一个错误
\n\n通常,我确信存在一种更简单的方法来做到这一点,例如编写 9 行函数,但我找不到它
\n使用:
in.(y, Ref(x))
Run Code Online (Sandbox Code Playgroud)
您必须换x
行Ref
或编写(x, )
or[x]
以便使广播始终采用x
而不是迭代它。
请注意,我编写它是为了让您检查是否y[i]
在x
for中i in eachindex(y)
,因为这是您的参考实现的完成方式。
归档时间: |
|
查看次数: |
1014 次 |
最近记录: |