source: MML/trunk/mml/aokeep.m @ 4

Last change on this file since 4 was 4, checked in by zhangj, 10 years ago

Initial import--MML version from SOLEIL@2013

File size: 1.4 KB
Line 
1function  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
15ACCELERATOR_FAMILIES = getao;
16
17if isempty(ACCELERATOR_FAMILIES)
18    error('ACCELERATOR_FAMILIES does not exist.  Initialization is needed.');
19end
20
21if ischar(KEEPLIST)
22    KEEPLIST = cellstr(KEEPLIST);
23elseif ~iscellstr(KEEPLIST)
24    error('KEEFAMILIES must be a char array or a cell array of strings');
25end
26
27% Remove multiple ocurrances but keep the order
28[TEMP,INDEX] = unique(KEEPLIST);
29KEEPLIST = KEEPLIST(sort(INDEX));
30
31
32AO1 = cell(size(KEEPLIST));
33
34AOLIST = getfamilylist;
35if ischar(AOLIST)
36    AOLIST = cellstr(AOLIST);
37end
38
39for 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   
52end
53
54
55NEWAO={};
56for k = 1:length(AO1)
57    if ~isempty(AO1{k})
58        NEWAO{end+1}=AO1{k};
59    end
60end
61
62setao(NEWAO);
Note: See TracBrowser for help on using the repository browser.