arrays - Julia,在两个数组中选择实例的整数与 boolean 结果

标签 arrays boolean conditional-statements julia

我有一个名为 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

这有什么帮助,可以看到两个数值数组不能以 boolean 方式进行比较。我的语法有什么问题来获取满足两个条件的次数。很简单,我知道,但我无法理解!谢谢。 J

最佳答案

&& 是一个短路 boolean 值,这意味着如果第一项为 true,则不会评估其余项(请参阅 documentation )。这也意味着它仅适用于单个 boolean 值,并且不能通过数组进行广播。

& 是按位 AND 运算符 ( documentation ),您要在此处使用它,因为它可以使用语法 .& 在数组上进行广播,与使用 .==

的方式相同
julia> [true, true, false, false] .& [true, false, true, false]
4-element BitVector:
 1
 0
 0
 0

更新

在 Julia 1.7+ 中,短路运算符 &&|| 现在可以用点来参与广播融合,如 .&&.|| ( #39594 ):

julia> [true, true, false, false] .&& [true, false, true, false]
4-element BitVector:
 1
 0
 0
 0

关于arrays - Julia,在两个数组中选择实例的整数与 boolean 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65955363/

相关文章:

javascript - Angular Js ng-style 条件评估 px

javascript - 需要迭代最后两个对象

php - 字符串和数组的操作

php - 我如何过滤数组并返回匹配项

java - 使用 boolean 值检测小写字母。结果总是正确的。

java - If 语句 [help] Java 新手

spring - 以 spring-boot 代码中的多态性为条件进行重构

java - 在 for 循环中从数组中删除项目会返回错误

c - 在 C 中递增数组,特殊情况

javascript - jquery click 在 boolean 值更改后处理额外的功能