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

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

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?
Thanks, yes all possible 1's without considering the 0's. But I want the locations of these possible 1's to be kept.

댓글을 달려면 로그인하십시오.

 채택된 답변

James Tursa
James Tursa 2016년 12월 29일
편집: James Tursa 2016년 12월 29일
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

So Cool, thank you so much James.
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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

질문:

2016년 12월 29일

댓글:

2016년 12월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by