我正在寻找一组矩阵的所有可能的线性组合GF(2)
。我知道矩阵的数量k
, 并且它们都是相同的维度,存储在 3D 数组中,C(:,:,i)
用于第 i 个矩阵。因为我正在工作GF(2)
,所以线性组合的所有系数都必须在{0,1}
. 我想生成 2^k 个可能的总和中的每一个,以便我可以测试生成的矩阵以获得所需的属性。有很多关于生成矩阵或向量元素的所有组合的帖子,但我希望生成整个矩阵的所有线性组合。
非常感谢!
我正在寻找一组矩阵的所有可能的线性组合GF(2)
。我知道矩阵的数量k
, 并且它们都是相同的维度,存储在 3D 数组中,C(:,:,i)
用于第 i 个矩阵。因为我正在工作GF(2)
,所以线性组合的所有系数都必须在{0,1}
. 我想生成 2^k 个可能的总和中的每一个,以便我可以测试生成的矩阵以获得所需的属性。有很多关于生成矩阵或向量元素的所有组合的帖子,但我希望生成整个矩阵的所有线性组合。
非常感谢!
Here is an example:
%# 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