Mercurial > hg > camir-aes2014
comparison toolboxes/FullBNT-1.0.7/KPMtools/subsetsFixedSize.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e9a9cd732c1e |
---|---|
1 function sub_s=subsets1(s,k) | |
2 % SUBSETS1 creates sub-sets of a specific size from a given set | |
3 % SS = subsets1(S, k) | |
4 % | |
5 % S is the given set | |
6 % k is the required sub-sets size | |
7 % | |
8 % Example: | |
9 % | |
10 % >> ss=subsets1([1:4],3); | |
11 % >> ss{:} | |
12 % ans = | |
13 % 1 2 3 | |
14 % ans = | |
15 % 1 2 4 | |
16 % ans = | |
17 % 1 3 4 | |
18 % ans = | |
19 % 2 3 4 | |
20 % | |
21 % Written by Raanan Yehezkel, 2004 | |
22 | |
23 if k<0 % special case | |
24 error('subset size must be positive'); | |
25 elseif k==0 % special case | |
26 sub_s={[]}; | |
27 else | |
28 l=length(s); | |
29 ss={}; | |
30 if l>=k | |
31 if k==1 % Exit condition | |
32 for I=1:l | |
33 ss{I}=s(I); | |
34 end | |
35 else | |
36 for I=1:l | |
37 ss1=subsets1(s([(I+1):l]),k-1); | |
38 for J=1:length(ss1) | |
39 ss{end+1}=[s(I),ss1{J}]; | |
40 end | |
41 end | |
42 end | |
43 end | |
44 sub_s=ss; | |
45 end |