我有一大堆二进制数,我想在数组的一个维度上进行按位OR:
X = [ 192, 96, 96, 2, 3
12, 12, 128, 49, 14
....
];
union_of_bits_on_dim2 = [
bitor(X(:,1), bitor(X(:,2), bitor(X(:,3), ... )))
];
ans =
[ 227
191
... ]
有一个简单的方法吗?我实际上正在研究一个n维数组.我试过bi2de,但它使我的数组变平,所以下标变得复杂了.
如果matlab有折叠函数我可以很容易地做到,但我不认为它.
好的@Divakar要求提供可运行的代码,以便明确这里是一个可能适用于2D数组的冗长版本.
function U=union_of_bits_on_dim2(X)
U=zeros(size(X,1),1);
for i=1:size(X,2)
U=bitor(U,X(:,i));
end
当然可以不循环完成吗?我当然希望bitor可以采取任意数量的论点.然后它可以用mat2cell完成.