"nchoosek" function for a matrix whose all elements are 0 or 1
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a matrix A whose all elements are 0 or 1. For example, the first row of A is:
[ 0 0 1 0 0 1 0 1 0 0]
I want to use nchoosek function to find the combinations of (total number of 1's in a row) -1. Here, n= 3, k=n-1=2 (always k=n-1). How can I apply this function to all the rows of the matrix or at least, for the above vector.
The output should be as:
[ 0 0 1 0 0 1 0 0 0 0]
[ 0 0 1 0 0 0 0 1 0 0]
[ 0 0 0 0 0 1 0 1 0 0]
nchoosek (3,2)=3.
Thanks
2 commentaires
the cyclist
le 29 Déc 2016
For the example
A = [0 0 1 0 0 1 0 1 0 0]
you want all possible rows that have two 1's and how many 0's?
Réponse acceptée
James Tursa
le 29 Déc 2016
Modifié(e) : James Tursa
le 29 Déc 2016
E.g., using a loop:
f = find(A);
n = numel(f);
result = repmat(A,n,1);
for k=1:n
result(k,f(k)) = 0;
end
Or if the order matters:
result(k,f(n-k+1)) = 0;
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!