【发布时间】:2021-05-03 10:12:39
【问题描述】:
我有一个名为 Pop 的 3d 数组。我想知道两个不同的条件满足多少次,它们都对我独立工作,但我不能把两者放在一起。
Pop[end, :, 1] .== 3
工作正常,产生一个正确的 1 和 0 的整数向量。还有
Pop[end-1, :, 1] .== 4
有效,再次返回整数向量,但是当我将两者放在一起时:
count(Pop[end, :, 1] .== 3 && Pop[end-1, :, 1] .== 4)
我收到此错误:
ERROR: TypeError: non-boolean (BitArray{1}) used in boolean context
哪一种帮助,可以看出两个数值数组不能以布尔方式进行比较。我的语法有什么问题来计算同时满足两个条件的次数。很简单,我知道,但我无法得到它!谢谢。 J
【问题讨论】:
-
你想要
(Pop[end, :, 1] .== 3) .& (Pop[end-1, :, 1] .== 4)。请注意,如果没有括号,优先级会有所不同:将:(1 == 2 & 3 == 4) |> dump与&&进行比较。 -
Thx mcabbot,我确实尝试找到示例和/或解释,但似乎语言太新了,几乎没有。我在哪里可以找到
.&和&&之间差异的描述? -
&&就像? :没有其他情况,这里描述:docs.julialang.org/en/v1/manual/control-flow。而&只是一个函数,如下所述:docs.julialang.org/en/v1/manual/mathematical-operations。手册总体上还是不错的,当然你不需要读到最后。
标签: arrays boolean conditional-statements julia