我想从一个满足条件
的向量的元素组合创建一个矩阵例如,我有这个载体
a = [1 2 3 4 5]
并希望创建一个像
这样的矩阵a = [1 0 0 0 0;
1 2 0 0 0;
1 2 3 0 0;
1 2 3 4 0;
1 2 3 4 5;
0 2 0 0 0;
0 2 3 0 0;
........;]
然后获取满足条件的行我可以使用命令:
b = sum(a')' > value
但我不知道如何生成矩阵
答案 0 :(得分:2)
您可以生成所有可能的二进制组合以确定所需的矩阵:
a = [1 2 3];
n = size(a,2);
% generate bit combinations
c =(dec2bin(0:(2^n)-1)=='1');
% remove first line
c = c(2:end,:)
n_c = size(c,1);
a_rep = repmat(a,n_c,1);
result = c .* a_rep
输出:
c =
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
result =
0 0 3
0 2 0
0 2 3
1 0 0
1 0 3
1 2 0
1 2 3