Julia 使用&;操作人员

Julia 使用&;操作人员,julia,Julia,好的,让我们在这里采用这个逻辑: dummy = [1 2 3 4 5] num_test = convert(Array{Int64},3 .== dummy) 我得到的结果是: 0 0 1 0 0 如果我尝试匹配两个语句: num_test = convert(Array{Int64},3 .== dummy & 4 .== dummy) 它不评估: 0 0 0 0 0 在我写这篇文章时,这是因为在=向量化调用中,它在相同的索引元素位置上查找3和4 我可以在R

好的,让我们在这里采用这个逻辑:

dummy = [1 2 3 4 5]
num_test = convert(Array{Int64},3 .== dummy)
我得到的结果是:

0  0  1  0  0
如果我尝试匹配两个语句:

num_test = convert(Array{Int64},3 .== dummy & 4 .== dummy)
它不评估:

0  0  0  0  0
在我写这篇文章时,这是因为在
=
向量化调用中,它在相同的索引元素位置上查找
3和4

我可以在R中执行类似的操作。但是相同类型的逻辑没有转移到Julia,或者我使用了错误的语法Julia


谢谢

我假设您尝试执行的操作是评估
3.==dummy
4.==dummy
,然后对这两个元素进行比较。鉴于此,这里有两个问题:

1) 操作顺序。您需要
(3.==虚拟)和(4.==虚拟)

2) 如果您使用的是最新的v0.6,您还应该看到一个弃用警告,因为从v0.7+,您将需要广播
&
操作员。所以使用
(3.==虚拟)和(4.==虚拟)

据我所知,到
Vector{Int}
部分的转换很好,应该可以按预期工作,尽管您可以只编写
Int.((3.==dummy)和(4.==dummy))

鉴于上述所有情况,您现在应该看到以下结果:

julia> Int.((3 .== dummy) .& (4 .== dummy))
1×5 Array{Int64,2}:
 0  0  0  0  0

julia> Int.((3 .== dummy) .| (4 .== dummy))
1×5 Array{Int64,2}:
 0  0  1  1  0
最后一点,我假设您故意将
dummy
定义为一行
矩阵
,而不是
向量
。如果希望最终输出为
向量
,则可以使用
dummy=[1,2,3,4,5]