0001 function retVal = issubfield(d, str1, str2, str3, str4)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 numFields = nargin-1;
0013
0014
0015 retVal = 1;
0016
0017 switch numFields
0018 case 2
0019 retVal = retVal & eval(sprintf('isfield(d, ''%s'');', str1));
0020 if(retVal)
0021 retVal = retVal & eval(sprintf('isfield(d.%s, ''%s'');', str1, str2));
0022 end
0023
0024 case 3
0025 retVal = retVal & eval(sprintf('isfield(d, ''%s'');', str1));
0026 if(retVal)
0027 retVal = retVal & eval(sprintf('isfield(d.%s, ''%s'');', str1, str2));
0028 end
0029 if(retVal)
0030 retVal = retVal & eval(sprintf('isfield(d.%s.%s, ''%s'');', str1, ...
0031 str2, str3));
0032 end
0033
0034 case 4
0035 retVal = retVal & eval(sprintf('isfield(d, ''%s'');', str1));
0036 if(retVal)
0037 retVal = retVal & eval(sprintf('isfield(d.%s, ''%s'');', str1, str2));
0038 end
0039 if(retVal)
0040 retVal = retVal & eval(sprintf('isfield(d.%s.%s, ''%s'');', str1, ...
0041 str2, str3));
0042 end
0043 if(retVal)
0044 retVal = retVal & eval(sprintf('isfield(d.%s.%s.%s, ''%s'');', str1, ...
0045 str2, str3, str4));
0046 end
0047
0048 end
0049
0050 return;
0051