rod*_*ece 5 boolean-operations julia
我有两个布尔向量a = [1,1,1]
和b = [0,1,1]
地方显然1
代表true
和0
为false
.
我想用布尔代数计算它们的内积.因此,我想要的结果
1*0 + 1*1 + 1*1 = 0 + 1 + 1 = 0
Run Code Online (Sandbox Code Playgroud)
因为加法扮演排他性或(XOR)的角色.
我知道产品部分可以像这样完成
a = [true, true, true] # could also use ones(Bool, 3)
b = [false, true, true]
bitwise_prod = a & b
Run Code Online (Sandbox Code Playgroud)
但我不知道怎么做.有任何想法吗?
我现在真的找到了一个好方法.首先,我不需要使用布尔变量
a = [1, 1, 1] # or ones(Int, 3)
b = [0, 1, 1]
Run Code Online (Sandbox Code Playgroud)
然后我可以使用reduce
该xor
功能.
reduce(xor, a & b)
Run Code Online (Sandbox Code Playgroud)
请注意,我尝试使用按位异或操作者$
所发现的文件中(一个匿名函数内),但该运营商已被弃用,朱莉娅0.6.2建议的xor
功能来代替.我认为拥有功能名称使它非常整洁.