"nchoosek" function for a matrix whose all elements are 0 or 1

3 vues (au cours des 30 derniers jours)
Ismaeel
Ismaeel le 29 Déc 2016
Commenté : Ismaeel le 29 Déc 2016
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
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?
Ismaeel
Ismaeel le 29 Déc 2016
Thanks, yes all possible 1's without considering the 0's. But I want the locations of these possible 1's to be kept.

Connectez-vous pour commenter.

Réponse acceptée

James Tursa
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;
  2 commentaires
Ismaeel
Ismaeel le 29 Déc 2016
So Cool, thank you so much James.
Ismaeel
Ismaeel le 29 Déc 2016
Can we modify the code in case if A is a matrix instead of a vector? let's say: A=[0 0 1 0 0 1 0 1 0 0] [0 1 0 0 0 1 0 0 0 0] Thanks once again

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by