필터 지우기
필터 지우기

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

조회 수: 1 (최근 30일)
Nitin SHrinivas
Nitin SHrinivas 2021년 8월 1일
편집: Matt J 2021년 8월 1일
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