source: MML/trunk/mml/ismemberof.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.5 KB
Line 
1function  [IsTest, Index] = ismemberof(FamilyName, Field, MemberString)
2%ISMEMBEROF - Returns turn if the membership information of a family (cell of strings)
3%  [MemberOfBooleanVector, Index] = ismemberof(FamilyName, MemberString)
4%
5%  If FamilyName is a matrix, then a column of individual ismemberof calls is returned.
6%  MemberString must be a string.
7%  If the family was not found, then [] is returned.
8%
9%  An optional Field input can be used to only look through subfields.
10%  [MemberOfBooleanVector, Index] = ismemberof(FamilyName, Field, MemberString)
11%  Subfield membership is usually not used.
12%
13% INPUTS
14%  1. If FamilyName is a matrix, then a column of individual ismemberof calls is returned.
15%  2. MemberString must be a string.
16%  If the family was not found, then [] is returned.
17%
18%
19%  See Also getmemberof, findmemberof, isfamily
20
21%
22%  Written by Gregory J. Portmann
23
24if nargin < 2
25    error('2 inputs required');
26end
27if nargin == 2
28    MemberString = Field;
29end
30
31if isstruct(FamilyName)
32    if isfield(FamilyName, 'FamilyName')
33        FamilyName = FamilyName.FamilyName;
34    else
35        error('For structure inputs, FamilyName field must exist');
36    end
37end
38
39IsTest = [];
40Index = [];
41for i = 1:size(FamilyName,1)
42    Family = deblank(FamilyName(i,:));
43    if nargin == 2
44        IsTest(i,1) = any(strcmpi(MemberString, getmemberof(Family)));
45    else
46        IsTest(i,1) = any(strcmpi(MemberString, getmemberof(Family, Field)));
47    end
48    if IsTest(i,1) == 1
49        Index = [Index; i];
50    end
51end
Note: See TracBrowser for help on using the repository browser.