1 | function NEWAO = aokeep(KEEPLIST,varargin) |
---|
2 | %AOKEEP - Removes families from the Accelerator Families except those included in KEEPLIST |
---|
3 | % AOKEEP(KEEPLIST) |
---|
4 | % |
---|
5 | % INPUTS |
---|
6 | % 1. KEEPLIST is a cell array of strings of family names to keep. |
---|
7 | % The families are reordered according to their position in KEEPLIST |
---|
8 | % |
---|
9 | % EXMAPLES |
---|
10 | % 1. aokeep({'FAM1','FAM2',...}) |
---|
11 | |
---|
12 | % |
---|
13 | % Written By Gregory J. Portmann |
---|
14 | |
---|
15 | ACCELERATOR_FAMILIES = getao; |
---|
16 | |
---|
17 | if isempty(ACCELERATOR_FAMILIES) |
---|
18 | error('ACCELERATOR_FAMILIES does not exist. Initialization is needed.'); |
---|
19 | end |
---|
20 | |
---|
21 | if ischar(KEEPLIST) |
---|
22 | KEEPLIST = cellstr(KEEPLIST); |
---|
23 | elseif ~iscellstr(KEEPLIST) |
---|
24 | error('KEEFAMILIES must be a char array or a cell array of strings'); |
---|
25 | end |
---|
26 | |
---|
27 | % Remove multiple ocurrances but keep the order |
---|
28 | [TEMP,INDEX] = unique(KEEPLIST); |
---|
29 | KEEPLIST = KEEPLIST(sort(INDEX)); |
---|
30 | |
---|
31 | |
---|
32 | AO1 = cell(size(KEEPLIST)); |
---|
33 | |
---|
34 | AOLIST = getfamilylist; |
---|
35 | if ischar(AOLIST) |
---|
36 | AOLIST = cellstr(AOLIST); |
---|
37 | end |
---|
38 | |
---|
39 | for k = 1:length(KEEPLIST) |
---|
40 | |
---|
41 | MATCH = find(strcmp(AOLIST,KEEPLIST{k})); |
---|
42 | if length(MATCH)>1 |
---|
43 | warning(['Duplicate family name found in ACCELERATOR FAMILIES:', ACCELERATOR_FAMILIES.(KEEPLIST{k}).FamilyName]); |
---|
44 | end |
---|
45 | |
---|
46 | if length(MATCH)>=1 |
---|
47 | AO1{k}=ACCELERATOR_FAMILIES.(KEEPLIST{k}); |
---|
48 | else |
---|
49 | warning(['Family ', KEEPLIST{k}, ' not found in ACCELERATOR FAMILIES']); |
---|
50 | end |
---|
51 | |
---|
52 | end |
---|
53 | |
---|
54 | |
---|
55 | NEWAO={}; |
---|
56 | for k = 1:length(AO1) |
---|
57 | if ~isempty(AO1{k}) |
---|
58 | NEWAO{end+1}=AO1{k}; |
---|
59 | end |
---|
60 | end |
---|
61 | |
---|
62 | setao(NEWAO); |
---|