How can I generate all possible combinations of a matrix which have a certain value?

How can matlab provide all possible combinations of a matrix which equals to zero? For example: I have the matrix a=[0 1 0; 1 1 0; 0 1 1] and matlab has to give the answer: 1 3 7 8, 1 3 7, 1 3 8, 1 7 8, 3 7 8, 1 3, 1 7, 1 8, 3 7, 3 8, 7 8.

 Accepted Answer

n = find(a==0);
out = arrayfun(@(x)nchoosek(n,x),numel(n):-1:2,'un',0)

2 Comments

For people unfamiliar with arrayfun, the 'un', 0 at the end is short for 'UniformOutput', false, which means put the output in a cell array.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 20 Oct 2014

Commented:

on 20 Oct 2014

Community Treasure Hunt

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

Start Hunting!