source: MML/trunk/mml/getmemberof.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  MemberOfCell = getmemberof(FamilyName, Field)
2%GETMEMBEROF - Returns the membership information of a family (cell of strings)
3%  MemberOfCell = getmemberof(FamilyName)
4%
5%  If FamilyName is a matrix, then a column of cells is returned.
6%  If the family was not found, then {[]} is returned
7%
8%  An optional Field input can be used to only look through subfields.
9%  MemberOfCell = getmemberof(FamilyName, Field)
10%  Subfield membership is usually not used.
11%
12%  NOTE
13%  1. If no input, then the all families will be returned
14%     MemberOfCell = getmemberof;
15%  2. If no output, then the MemberOf strings will be printed to the screen
16%
17%  See also ismemberof, findmemberof, isfamily, getfamilylist
18%
19%  Written by Greg Portmann
20
21
22if nargin < 1
23    FamilyName = getfamilylist;
24end
25
26
27MemberOfCell = {};
28for i = 1:size(FamilyName,1)
29    Family = deblank(FamilyName(i,:));
30    if nargin >= 2
31        if size(Field,1) == 1
32            a = getfamilydata(Family, deblank(Field), 'MemberOf');
33        else
34            a = getfamilydata(Family, deblank(Field(i,:)), 'MemberOf');
35        end
36    else
37        a = getfamilydata(Family, 'MemberOf');
38    end
39    MemberOfCell{i,1} = a(:)';
40end
41
42
43if nargout == 0
44    % Print to the screen
45    if nargin == 1
46        fprintf('   #  Family:    Memberships \n');
47    else
48        fprintf('   #  Family.Field:    Memberships \n');
49    end
50    for i = 1:size(MemberOfCell,1)
51        if nargin == 1
52            fprintf('  %2d. %s:', i, deblank(FamilyName(i,:)));
53        else
54            if size(Field,1) == 1
55                fprintf('  %2d. %s.%s:', i, deblank(FamilyName(i,:)), deblank(Field));
56            else
57                fprintf('  %2d. %s.%s:', i, deblank(FamilyName(i,:)), deblank(Field(i,:)));
58            end
59        end
60        Members = MemberOfCell{i};
61        for j = 1:length(Members)
62            fprintf('  "%s"', Members{j});
63        end
64        fprintf(' \n');
65    end
66else
67    % For one family, returns a cell array, not cell array of cell arrays
68    if length(MemberOfCell) == 1
69        MemberOfCell = MemberOfCell{1};
70    end
71end
Note: See TracBrowser for help on using the repository browser.