使用 Julia 1.5.3 和 Julia 1.6.0 这两个版本似乎都不支持 & 用于 BitArrays。
例如,我有两个 BitArrays
x = BitArray([1,0,1])
Run Code Online (Sandbox Code Playgroud)
和
y=BitArray([0,0,1])
Run Code Online (Sandbox Code Playgroud)
并希望将它们相交以找到:
x&y=BitArray([0,0,1])
Run Code Online (Sandbox Code Playgroud)
但是运算符 & 似乎不支持 BitArrays 并且使用 .* 似乎非常耗时。
有谁知道在 Julia 中找到两个位数组的交集的好方法吗?
&适用于标量值,而您将它们应用于数组。将标量运算符(或函数)应用于数组时,您应该使用“广播”,您可以通过向运算符添加一个点来实现:
jl> x .& y
3-element BitVector:
0
0
1
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我看不到.*和之间的任何时间差异.&。事实上似乎*只是调用&.
你看到什么样的表现?
jl> using BenchmarkTools
jl> @btime $x .* $y;
48.479 ns (2 allocations: 128 bytes)
jl> @btime $x .& $y;
48.426 ns (2 allocations: 128 bytes)
Run Code Online (Sandbox Code Playgroud)