MATLAB:二元矩阵的所有可能的组合(MATLAB: All possible combinati

2019-06-24 03:07发布

我期待找到了一组矩阵的所有可能的线性组合GF(2) 我知道矩阵的数量k ,并且它们都具有相同的尺寸,存储在3D阵列, C(:,:,i)第i个矩阵。 因为我正在超过GF(2)所述线性组合的所有系数必须是{0,1} 我想生成各2 ^ k个可能总和使我测试得到的矩阵为一个必需的属性。 有有关生成矩阵或向量的元素的所有组合许多文章,但我期待以生成所述矩阵作为一个整体的所有线性组合。

非常感谢!

Answer 1:

下面是一个例子:

%# 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


文章来源: MATLAB: All possible combinations of binary matrices