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

    function tb = removecats(ta,oldcats)
%REMOVECATS Remove categories from a tall categorical array.
%   Supported syntaxes:
%   B = REMOVECATS(A)
%   B = REMOVECATS(A,OLDCATEGORIES)
%
%   See also CATEGORICAL/REMOVECATS.

%   Copyright 2016 The MathWorks, Inc.

narginchk(1,2);
nargoutchk(1,1);
if nargin == 1
    % Work out which category is not used
    % in the entire tall categorica array
    ta = tall.validateType(ta, upper(mfilename), {'categorical'}, 1);
    taUnique = reducefun(@unique, ta);
    taUnique.Adaptor = matlab.bigdata.internal.adaptors.CategoricalAdaptor();
    taRemove = clientfun(@removecats,taUnique);
    taRemove.Adaptor = matlab.bigdata.internal.adaptors.CategoricalAdaptor();
    cats = categories(taUnique);
    catsNoUnused = categories(taRemove);
    oldcats = clientfun(@(x,y)setdiff(x,y), cats, catsNoUnused);
end
tb = categoricalPiece(mfilename, ta, oldcats);
end