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]