1 | function 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 | |
---|
22 | if nargin < 1 |
---|
23 | FamilyName = getfamilylist; |
---|
24 | end |
---|
25 | |
---|
26 | |
---|
27 | MemberOfCell = {}; |
---|
28 | for 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(:)'; |
---|
40 | end |
---|
41 | |
---|
42 | |
---|
43 | if 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 |
---|
66 | else |
---|
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 |
---|
71 | end |
---|