function s=subsets(k,n) % SUBSETS S = SUBSETS(k,n) lists all subsets of k elements % out of a set of n elements. % n and k must be positive integers. % % See also MINORS. % Adapted from Harold M. Edwards, "Linear Algebra." % Written by Serge Tchikanda 02/09/96. if any([k n]) <= 0 break end if n==k s=1:n; elseif k==1 s=[1:n]'; else c=prod(n-k+1:n-1)/prod(1:k-1); % k-1 choose n-1 s1=subsets(k,n-1); s2=subsets(k-1,n-1); s3=n*ones(c,1); s=[s1;[s2 s3]]; end