编辑:我还必须让每列的总和等于一个特定的数字!!
我想生成二进制NxN矩阵,使得每行包含特定数量的1而不重复行。示例:生成4x4矩阵,每行2个,并且列值的总和等于2,即生成
因此,每一行都是唯一的,并且恰好有2行,每列的总和为2.错误的答案是:
B =
1 1 0 0
1 0 1 0
1 0 0 1
0 1 1 0
因为第1列的总和不等于2(但是3),第4列的总和不等于2(但是1)。每列应加起来2.如何在matlab中获得正确的答案?
答案 0 :(得分:1)
您可以尝试随机生成矩阵
列表p = randperm(n,k)
的排列
https://fr.mathworks.com/help/matlab/ref/randperm.html?requestedDomain=www.mathworks.com
从这些行生成一个矩阵(带有循环的列表)