gusucode.com > bigdata 工具箱 matlab源码程序 > bigdata/@tall/standardizeMissing.m

    function out = standardizeMissing(in, varargin)
%STANDARDIZEMISSING  Insert standard missing data indicators into a table.
%
%    B = STANDARDIZEMISSING(A,INDICATORS)
%    B = STANDARDIZEMISSING(A,INDICATORS,'DataVariables',DATAVARS)
%
%   See also: STANDARDIZEMISSING, TALL/ISMISSING.

% Copyright 2015-2016 The MathWorks, Inc.

narginchk(2,4);
if nargin>1
    checkNotTall(upper(mfilename), 1, varargin{:});
    % Check that the indicators are sane at parse time. Indicators must be
    % a double array, a cellstr or a cell containing mixed strings and
    % doubles.
    if ~isValidIndicator(varargin{1})
        error(message('MATLAB:ismissing:IndicatorsInvalidType', class(varargin{1})));
    end
end
in = tall.validateType(in, mfilename, {'table'}, 1);

% All inputs except the first are broadcast and the operation is
% effectively elementwise in that it preserves all dimensions.
out = elementfun(@(x) standardizeMissing(x,varargin{:}), in);
out.Adaptor = in.Adaptor;
end


function tf = isValidIndicator(arg)
% Check whether the input argument is a valid missing value indicator
tf = isStringOrDouble(arg) ...
    || iscellstr(arg) ...
    || (iscell(arg) && all(cellfun(@isStringOrDouble, arg)));
end


function tf = isStringOrDouble(in)
tf = ischar(in) || isstring(in) || isa(in,'double');
end