How to generate a matrix with entries of -1 and +1 of size N x M where all the columns are unique ?

1 vue (au cours des 30 derniers jours)
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 commentaires
Sai Teja Suggala
Sai Teja Suggala le 7 Mar 2022
Yes @Davide Masiello, I intend to expand it . My N would be 64. For which 2^64 would be my maximum number of columns. But I just want to limit it to say 1000 . Matrix of size ( 64 x 1000) with -1 and +1 as entries..given all columns are unique..

Connectez-vous pour commenter.

Réponse acceptée

Bruno Luong
Bruno Luong le 7 Mar 2022
Modifié(e) : Bruno Luong le 7 Mar 2022
N = 3;
M = 5;
A = (dec2bin(randperm(2^N,M)-1,N)-'0')'*2-1
A = 3×5
1 -1 1 1 1 1 -1 -1 1 -1 -1 -1 1 1 -1

Plus de réponses (2)

David Hill
David Hill le 7 Mar 2022
M=10;N=7;
m=unique((-1).^randi(2,2*M,N),'rows')';
m=m(1:N,1:M);
  1 commentaire
Bruno Luong
Bruno Luong le 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)
Index in position 2 exceeds array bounds. Index must not exceed 893.

Connectez-vous pour commenter.


Jan
Jan le 7 Mar 2022
N = 3;
M = 8;
R = 1 - 2 * rem(floor(pow2(1-N:0).' .* (0:M-1)), 2)
R = 3×8
1 1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 -1 1 -1 1 -1 1 -1

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by