www.gusucode.com > bigdata 工具箱 matlab源码程序 > bigdata/@tall/minus.m
function out = minus(ta, tb) %- Minus. % Copyright 2016 The MathWorks, Inc. % Note we do not support "datetime() - '2016-01-27'" syntax since we don't have % strong types for char/string/cellstr. [ta, tb] = tall.validateType(ta, tb, mfilename, ... {'numeric', 'logical', 'duration', 'datetime', 'calendarDuration', 'char'}, ... 1:2); ca = tall.getClass(ta); cb = tall.getClass(tb); import matlab.bigdata.internal.adaptors.getAdaptorForType; import matlab.bigdata.internal.adaptors.GenericAdaptor; % Superiority goes: datetime > calendarDuration > duration % Empty types are presumed numeric. if strcmp(ca, 'datetime') if strcmp(cb, 'datetime') outAdaptor = getAdaptorForType('duration'); else outAdaptor = getAdaptorForType('datetime'); end else if strcmp(cb, 'datetime') error(message('MATLAB:bigdata:array:SubstractDatetimeFrom')); end if any(strcmp({ca,cb}, 'calendarDuration')) outAdaptor = getAdaptorForType('calendarDuration'); elseif any(strcmp({ca,cb}, 'duration')) outAdaptor = getAdaptorForType('duration'); else outAdaptor = GenericAdaptor(); end end out = elementfun(@minus, ta, tb); out.Adaptor = outAdaptor; % Now try to propagate sizes out = computeElementwiseSize(out, {ta, tb}); end