在 Julia 中比较两个向量的元素是否相等

Álv*_*gas 3 r vector julia

我试图在应用于两个向量时获得与Rs相同的行为==,以比较向量中的每个元素。

a <-  c(1,2 ,3 )
b <-  c(1, 2 ,5 )
a==b
#[1]  TRUE  TRUE FALSE
Run Code Online (Sandbox Code Playgroud)

我朱莉娅,我想出了一种非常笨拙的方法,但现在我想知道是否有最简单的方法。

a = [1 2 3 ]
b = [1 2 5 ]
a == b  #this does not return what I want.
#false  

rows_a =size(a)[2]
equal_terms =ones(rows_a)
for i in  1:rows_a 
        equal_terms[i] =(a[i] == b[i])
end
equal_terms
#1.0
#1.0
#0.0
Run Code Online (Sandbox Code Playgroud)

先感谢您。

Prz*_*fel 7

在 Julia 中,您需要向量化您的操作:

\n
julia> a .== b\n1\xc3\x973 BitMatrix:\n 1  1  0\n
Run Code Online (Sandbox Code Playgroud)\n

与 Python 和 R 相反,Julia 在每次需要时都需要显式矢量化。任何运算符或函数调用都可以通过添加点进行矢量化.

\n

请注意,ab是水平向量,在 Julia 中以矩阵形式表示1\xc3\x97n。Julia 中的向量始终是垂直的。

\n

  • 手册的 [与 R 的显着差异](https://docs.julialang.org/en/v1/manual/noteworthy-differences/#Noteworthy-differences-from-R) 部分提到了“.”用于逐元素操作在矩阵乘法和“缺失”检查的特定上下文中。也许值得将其作为一个单独的一般要点添加,因为这似乎是新来者的常见绊脚石。 (3认同)