次の制約を満たすbinary(0sおよび1s)行列を作成したいと思います。
各列には単一のバイナリ1のみが含まれている必要があり、その列の残りの要素は0です。
行列の各行の合計は、目的の値である必要があります。たとえば、
rowSum
[5 7 6 8 .......]のベクトルが与えられた場合、最初の行の合計は5になり、2番目の行の合計は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