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

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

Initial import--MML version from SOLEIL@2013

File size: 2.0 KB
Line 
1function  FamilyName = findmemberof(MemberString, Field)
2%FINDMEMBEROF - Finds all family members
3%  FamilyName = findmemberof(MemberString, Field)
4
5%  An optional Field input can be used to only look through subfields.
6%  FamilyNameCell = findmemberof(MemberString, Field)
7%  Subfield membership is usually not used.
8%
9%  INPUTS
10%  1. MemberString - Must be a string or cell array of strings
11%  2. Field - Optional field
12%
13%  OUPUTS
14%  1. FamilyName - Cell array of family name (Column cell)
15%                  {} if no member is found
16%
17%  EXAMPLES
18%  1. findmemberof('Magnet')
19%
20%  See Also getmemberof, ismemberof, isfamily
21
22%
23% Written by Gregory J. Portmann
24%
25
26
27if nargin < 1
28    error('1 inputs required');
29end
30
31FamilyName = {};
32FamilyList = getfamilylist;
33
34if nargin >= 2
35    % Look for subfield membership
36    for i = 1:size(FamilyList,1)
37        Family = deblank(FamilyList(i,:));
38        if iscell(MemberString)
39            Hit = zeros(length(MemberString),1);
40            for j = 1:length(MemberString)
41                if any(strcmpi(MemberString{j}, getmemberof(Family, Field)))
42                    Hit(j) = 1;
43                end
44            end
45            if all(Hit)
46                FamilyName = [FamilyName; {Family}];
47            end
48        else
49            if any(strcmpi(MemberString, getmemberof(Family, Field)))
50                FamilyName = [FamilyName; {Family}];
51            end
52        end
53    end
54else
55    % Look for main field membership
56    for i = 1:size(FamilyList,1)
57        Family = deblank(FamilyList(i,:));
58        if iscell(MemberString)
59            Hit = zeros(length(MemberString),1);
60            for j = 1:length(MemberString)
61                if any(strcmpi(MemberString{j}, getmemberof(Family)))
62                    Hit(j) = 1;
63                end
64            end
65            if all(Hit)
66                FamilyName = [FamilyName; {Family}];
67            end
68        else
69            if any(strcmpi(MemberString, getmemberof(Family)))
70                FamilyName = [FamilyName; {Family}];
71            end
72        end
73    end
74end
Note: See TracBrowser for help on using the repository browser.