www.gusucode.com > datastoreio工具箱 matlab源码程序 > datastoreio/+matlab/+io/+datastore/+internal/+validators/validateVarsTypes.m
function varsOrTypes = validateVarsTypes(varsOrTypes, propName, onConsturction, usingDefaults) %VALIDATEVARSTYPES Validates variable names and types % This is a helper function that validates the VariableNames, % SelectedVariableNames, TextscanFormats, SelectedFormats, VariableTypes, % SelectedVariableTypes. % Copyright 2015-2016 The MathWorks, Inc. % imports import matlab.io.internal.validators.isString; import matlab.io.internal.validators.isCellOfStrings; % validate arguments if nargin < 3 onConsturction = false; usingDefaults = {}; end if nargin < 4 usingDefaults = {}; end % error for cases when {} is explicitly passed during construction if onConsturction isDefault = isequal(varsOrTypes, {}); if isDefault if ~ismember(propName, usingDefaults) error(message('MATLAB:datastoreio:tabulartextdatastore:invalidStrOrCellStr', propName)); end return; end end % '', {}, [] must error, {} passed during construction already handled % above if isempty(varsOrTypes) error(message('MATLAB:datastoreio:tabulartextdatastore:emptyVar', propName)); end % inputs must be strings or cell array of strings if ~isString(varsOrTypes) && ~isCellOfStrings(varsOrTypes) error(message('MATLAB:datastoreio:tabulartextdatastore:invalidStrOrCellStr', propName)); end % make inputs cell arrays of strings, cellstr works on chars, cellstrs. varsOrTypes = cellstr(varsOrTypes); % convert column vectors to row vectors varsOrTypes = varsOrTypes(:)'; % inputs cannot contains empty elements if (any(cellfun('isempty', varsOrTypes))) error(message('MATLAB:datastoreio:tabulartextdatastore:cellWithEmptyStr', propName)); end end