我想构造一个满足以下约束的二进制(0s和1s)矩阵:
每列必须仅包含单个二进制 1,该列的其余元素为 0。
矩阵的每一行之和应该是一个期望值。例如,给定一个
rowSum
向量 [5 7 6 8 .......],那么第一行的总和应该是 5,第二行的总和应该是 7,依此类推。nCol
==Sum(rowSum)
此外,我想考虑几个(例如,7 个)满足相同条件的矩阵。
编辑:
我试图编写代码并完成了其中的一部分。代码是:
x=rand(21,50,7);
for k=1:7
cons=max(x(:,:,7));
for i=1:50
for j=1:21
if x(j,i,k)==cons(i)
x(j,i,k)=1;
else
x(j,i,k)=0;
end
end
end
end
x