MATLAB:二进制矩阵的所有可能组合

4
我想要找到一组矩阵在GF(2)上的所有可能线性组合。我知道矩阵的数量k,它们都是相同维度的,并存储在一个三维数组C(:,:,i)中,表示第i个矩阵。因为我是在GF(2)上工作,所有线性组合的系数必须在{0,1}中。我想生成每个2^k种可能的和,以便我可以测试所得到的矩阵是否具有所需属性。有许多关于生成矩阵或向量元素的所有组合的帖子,但我正在寻找生成矩阵作为整体的所有线性组合的方法。感谢您的帮助!

2
生成所有可能的长度为k的向量,并使用它们的元素作为系数。 - reve_etrange
1个回答

2

这里有一个例子:

%# some data to work with
sz = [4 3];
k = 6;
C = rand([sz k]);

%# coefficients [0,0,0,0,0,0] to [1,1,1,1,1,1]
p = (dec2bin(0:2^k-1) == '1');

%# generate all linear combinations with the above coefficients
for i=1:size(p,1)
    %# C(:,:,1)*p(i,1) + C(:,:,2)*p(i,2) + ... + C(:,:,k)*p(i,k)
    linComb = sum(bsxfun(@times, permute(p(i,:),[1 3 2]), C),3);

    %# do something interesting with it ...
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接