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.

 Akzeptierte Antwort

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

2 Kommentare

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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Gefragt:

am 20 Okt. 2014

Kommentiert:

am 20 Okt. 2014

Community Treasure Hunt

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

Start Hunting!

Translated by