matlab - matlab中的快速异或数组

标签 matlab xor

有没有比这更胖的异或矩阵每一列的方法?

mod(sum(matrix),2)

它从 logical 转换为 double 并使用昂贵的模数。

更新:

根据 this source ,对 uint 求和比对 double 求和慢,因为它涉及最大裁剪和其他原因。 另外,请注意求和逻辑(使用 'native')在 1 处停止。

最佳答案

我试图避免转换为 double 但它并没有更好(通常更糟)。

A = rand(2000000, 1) > 0.5;
 class(A)

tic
B = mod(sum(A),2)
toc

tic
C = mod(sum(uint32(A),'native'),2)
toc

tic
D = bitand(sum(uint32(A),'native'),1)
toc

sum 的 native 选项允许您在结果中保留参数的类型。

关于matlab - matlab中的快速异或数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7721775/

相关文章:

c - 如何使用相同的函数对 C 中的字符串进行 XOR 加扰并再次加扰?

c - 异或加密失败

algorithm - 所有对的异或值之和

vectorization - AVX 指令 vxorpd 和 vpxor 之间的区别

matlab - 为什么通过以两种类似的方式向 fmincon 提供约束来获得不同的解决方案?

python - Python 中的细胞分割和荧光计数

MATLAB 嵌套事件通知?

c++ - 如何有效地计算给定数字的所有不同组合的按位异或值之和?

matlab - 将两个参数传递给 fminunc 函数

matlab - 'yyaxis' 轴属性的行为