在Julia中如何实现多个布尔矩阵的逐元素OR运算?
Julia多布尔矩阵逐元素OR运算方案
你要的功能可以直接用Julia内置的reduce函数实现,无需自定义函数或引入第三方依赖。
核心调用方式
对于你给出的布尔矩阵组成的列表输入,直接使用如下代码即可:
reduce(|, 布尔矩阵列表)
该写法可以完全匹配你给出的所有预期输出。
测试效果验证
用你提供的测试用例运行结果如下:
julia> reduce(|, z1) 2×2 Matrix{Bool}: 1 0 1 1 julia> reduce(|, z2) 2×2 Matrix{Bool}: 1 0 1 1 julia> reduce(|, z3) 2×2 Matrix{Bool}: 0 0 1 1 julia> reduce(|, z4) 2×2 Matrix{Bool}: 1 0 1 1 julia> reduce(|, z100) 2×2 Matrix{Bool}: 1 1 1 1
如果你输入的是分散的多个独立矩阵,没有提前打包成列表,也可以直接用逐元素或运算符的链式写法:
a .| b .| c .| d
运行结果和reduce(|, [a,b,c,d])完全一致。
额外说明
reduce是Julia Base库内置的高阶函数,底层做了大量性能优化,哪怕输入成百上千个同尺寸布尔矩阵,运算效率也足够高,不需要额外做性能优化。
内容的提问来源于stack exchange,提问作者Mark Kittisopikul
相关产品推荐
相关产品推荐

