How to generate a matrix with entries of -1 and +1 of size N x M where all the columns are unique ?
1 view (last 30 days)
Show older comments
Sai Teja Suggala
on 7 Mar 2022
Commented: Bruno Luong
on 9 Mar 2022
I want to create a matrix of size N x M, where each matrix element can be either -1 or +1 . The matrix must have unique columns
For N = 2, maximum number of 2 sized vectors possible with -1 and +1 are 2^N .
So, for N =2 and M =4
matrix would be
1 1 -1 -1
1 -1 1 -1
So, for a given N and M . I must get said matrix
Thanks a lot before hand.
3 Comments
Accepted Answer
Bruno Luong
on 7 Mar 2022
Edited: Bruno Luong
on 7 Mar 2022
N = 3;
M = 5;
A = (dec2bin(randperm(2^N,M)-1,N)-'0')'*2-1
0 Comments
More Answers (2)
David Hill
on 7 Mar 2022
M=10;N=7;
m=unique((-1).^randi(2,2*M,N),'rows')';
m=m(1:N,1:M);
1 Comment
Bruno Luong
on 9 Mar 2022
Sorry but you accepted answer is not robust
N=10;
M=2^N; % 1024
m=unique((-1).^randi(2,2*M,N),'rows')';
m=m(1:N,1:M)
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!