All possible combination based on 2^n but with 1 and -1
    8 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
Hi all, thank you for those of you who have answered my question below.
I have a slightly different question but still does not know how to achieve this.
Again, I want to create a matrix containing all possible combination. Example of this is shown below. The size of the matrix depends on the number of variable n and the total of combination should follow the . The example below is valid for  and, hence, the total number of rows is 8. The value of each element is 1 and -1.
 and, hence, the total number of rows is 8. The value of each element is 1 and -1.
 and, hence, the total number of rows is 8. The value of each element is 1 and -1.
 and, hence, the total number of rows is 8. The value of each element is 1 and -1.How to create this matrix automatically depending on the number of variable n?

2 Commenti
Risposte (3)
  Dyuman Joshi
      
      
 il 14 Mag 2021
        y=dec2bin([7 4 2 1])-'0';
y(y==0)=-1;
z =[y; flipud(y)]
This only works for this particular example. If you want a generalised answer, give more examples.
2 Commenti
  Dyuman Joshi
      
      
 il 14 Mag 2021
				Because only this combination corresponds to the desired result. 
That's why I mentioned - "This only works for this particular example. If you want a generalised answer, give more examples" 
  Daniel Pollard
      
 il 14 Mag 2021
        You could take the answer from your previous question, subtract 0.5 and multiply by 2. Your accepted answer was
n = 3;
m = dec2bin(0:pow2(n)-1)-'0' % limited precision
which then becomes
n = 3;
m = dec2bin(0:pow2(n)-1)-'0'; % limited precision
m = 2*(m-0.5)
0 Commenti
  Jan
      
      
 il 14 Mag 2021
        
      Modificato: Jan
      
      
 il 14 Mag 2021
  
      dec2bin creates a CHAR vector, while -'0' converts it to a double again. This indirection costs some time. The direct approach:
n = 3;
m = rem(floor((0:2^n-1).' ./ 2 .^ (0:n-1)), 2)
pool   = [1, -1];      % Arbitrary values
result = pool(m + 1)   % Add 1 to use m as index
Vedere anche
Categorie
				Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



