Generating combination of binary numbers

2 visualizzazioni (ultimi 30 giorni)
Variable N and M are some integers and . I want to create permutation of M 1s and 0s in the order shown below. Let and
A = [1 1 0 0 0;
1 0 1 0 0;
1 0 0 1 0;
1 0 0 0 1;
0 1 1 0 0;
0 1 0 1 0;
0 1 0 0 1;
0 0 1 1 0;
0 0 1 0 1;
0 0 0 1 1];
Note that in first row all 1s are on right side, then in next row the right most 1 move one step toward right and so on...

Risposta accettata

Guillaume
Guillaume il 18 Dic 2019
nchoosek outputs the indices in your desired ordering, so it's easy:
N = 5, M = 2; %demo data
cols = nchoosek(1:N, M);
A = zeros(size(cols, 1), N);
A(sub2ind(size(A), repmat((1:size(A, 1))', 1, M), cols)) = 1
  1 Commento
Luqman Saleem
Luqman Saleem il 18 Dic 2019
Wow! That was very quick. Slute!
I am so noob in programming.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Get Started with MATLAB 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!

Translated by