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功能来代替.我认为拥有功能名称使它非常整洁.