How to generate a binary matrix with unique rows (or) columns?

1 次查看(过去 30 天)
n = 15; k = 10;
flag = 0;
for l=1:2^k
while(1)
temp = randi([0,1] , 1,n);
for m=1:l-1
if(codeword(m,:) == temp)
flag = 1;
end
end
if(flag ==0)
break;
end
end
codeword(l,:) = temp;
end
This is a very time complex code!!
Can anyone suggest any other way with which I can solve this problem?
Thanks.
  1 个评论
Jonas
Jonas 2021-8-1
编辑:Jonas 2021-8-1

i suggest you just write ascending numbers in binary format, then all rows or columns are unique. think about how many rows and digits you need. this way you could produce e.g.

0 0 0 0 0
0 0 0 0 1
0 0 0 1 0
...

the minimum width of your matrix is then given by nextpow2 of your number of rows, but if you need a broader matrix you are free to just use more bits

请先登录,再进行评论。

采纳的回答

Matt J
Matt J 2021-8-1
编辑:Matt J 2021-8-1
Something like this, perhaps?
n = 15; k = 10;
dec2bin( randperm(2^n,k) ) -'0'
ans = 10×15
1 0 1 0 1 0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Sparse Matrices 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by