Create a array of 1 and -1
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
EDITED
Hi there, I want a 4 x 1 vector of all combinations of 1 and -1.
For instance [1 1 1 1] , [1 1 1 -1] , [1 1 -1 1]
etc..
1 Commento
Walter Roberson
il 4 Mag 2012
[1 1 1 -1] appears to be the same combination as [1 1 -1 1]. Are you sure you want combinations and not permutations?
Risposta accettata
Andrei Bobrov
il 4 Mag 2012
use function ff2n from Statistics Toolbox
out = ff2n(4)*2-1;
OR:
out = unique(nchoosek((-1).^(1:8),4),'rows');
2 Commenti
Più risposte (2)
Walter Roberson
il 4 Mag 2012
Taken how many at a time? If you say 2 at a time, then you have the problem that there are only 3 combinations: [-1 -1], [-1 1], [1 1]. The potential combination [1 -1] is the same combination as [-1 1] because by definition the order within a combination is irrelevant.
2 Commenti
Dr. Seis
il 4 Mag 2012
Not the most efficient, but:
>> a=nchoosek([1,2,3,4,5,6,7,8],4);
>> b = ones(size(a));
>> b(mod(a,2)==0) = b(mod(a,2)==0)*-1;
>> c = unique(b,'rows')'
c =
Columns 1 through 12
-1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1
-1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1
-1 -1 1 1 -1 -1 1 1 -1 -1 1 1
-1 1 -1 1 -1 1 -1 1 -1 1 -1 1
Columns 13 through 16
1 1 1 1
1 1 1 1
-1 -1 1 1
-1 1 -1 1
0 Commenti
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!