有没有比这更胖的异或矩阵每一列的方法?
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/