[5] | 1 | %ISVALIDILAB validity check for named-identifier support in a dataset |
---|
| 2 | % |
---|
| 3 | % I=ISVALIDILAB(A,FIELDS) |
---|
| 4 | % |
---|
| 5 | % INPUT |
---|
| 6 | % A input dataset |
---|
| 7 | % FIELDS (opt) name or cell array with required identifier names |
---|
| 8 | % |
---|
| 9 | % OUTPUT |
---|
| 10 | % I logical output: the dataset is/is not valid |
---|
| 11 | % |
---|
| 12 | % DESCRIPTION |
---|
| 13 | % This function validates if the dataset contains named identifiers. IN |
---|
| 14 | % order to enable the use of named identifiers in a dataset, use |
---|
| 15 | % ENABLEILAB. If a name or a cell array with identifier names is supplied |
---|
| 16 | % in the FIELDS parameter, these are checked for existence. |
---|
| 17 | % |
---|
| 18 | % SEE ALSO |
---|
| 19 | % ENABLEILAB, REMOVEILAB, GETILAB, SETILAB, GETILABLIST |
---|
| 20 | |
---|
| 21 | % $Id: isvalidilab.m,v 1.2 2005/05/02 13:05:46 pavel Exp $ |
---|
| 22 | |
---|
| 23 | function i=isvalidilab(a,fields) |
---|
| 24 | |
---|
| 25 | if ~exist('fields','var'), fields=[]; end |
---|
| 26 | if ischar(fields), fields={fields}; end |
---|
| 27 | |
---|
| 28 | isdataset(a); |
---|
| 29 | |
---|
| 30 | i=0; |
---|
| 31 | user=a.user; |
---|
| 32 | if isfield(user,'ilab') |
---|
| 33 | t=user.ilab; |
---|
| 34 | if isstruct(t) & isfield(t,'names') & iscell(t.names) |
---|
| 35 | i=1; |
---|
| 36 | end |
---|
| 37 | end |
---|
| 38 | |
---|
| 39 | if (nargout == 0) & (i == 0) |
---|
| 40 | error(['Dataset with ilab structure in user field expected. Use help enableilab for details.']) |
---|
| 41 | end |
---|
| 42 | |
---|
| 43 | % validate the required fields, if supplied |
---|
| 44 | if ~isempty(fields) |
---|
| 45 | for j=1:length(fields) |
---|
| 46 | if ~any(strcmp(user.ilab.names,fields{j})) |
---|
| 47 | i=0; |
---|
| 48 | if (nargout == 0) & (i == 0) |
---|
| 49 | error(['required field ''' fields{j} ''' is not present in a dataset']); |
---|
| 50 | end |
---|
| 51 | end |
---|
| 52 | end |
---|
| 53 | end |
---|
| 54 | |
---|
| 55 | |
---|
| 56 | return |
---|
| 57 | |
---|