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

1 vue (au cours des 30 derniers jours)
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.

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 20 Oct 2014
n = find(a==0);
out = arrayfun(@(x)nchoosek(n,x),numel(n):-1:2,'un',0)
  2 commentaires
Guillaume
Guillaume le 20 Oct 2014
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.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays 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!

Translated by