www.gusucode.com > bigdata 工具箱 matlab源码程序 > bigdata/@tall/plus.m
function out = plus(ta, tb) %+ Plus. % Copyright 2016 The MathWorks, Inc. [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.DatetimeFamilyAdaptor; import matlab.bigdata.internal.adaptors.GenericAdaptor; % If either is datetime, then output is datetime (unless both are datetime) % Else, if either is calendarDuration, output is calendarDuration % Else, if either is duration, output is duration % Else, output unknown if any(strcmp({ca, cb}, 'datetime')) if all(strcmp({ca, cb}, 'datetime')) error(message('MATLAB:datetime:DatetimeAdditionNotDefined')); end outAdaptor = DatetimeFamilyAdaptor('datetime'); elseif any(strcmp({ca, cb}, 'calendarDuration')) outAdaptor = DatetimeFamilyAdaptor('calendarDuration'); elseif any(strcmp({ca, cb}, 'duration')) outAdaptor = DatetimeFamilyAdaptor('duration'); else outAdaptor = GenericAdaptor(); end out = elementfun(@plus, ta, tb); out.Adaptor = outAdaptor; % Now try to propagate sizes out = computeElementwiseSize(out, {ta, tb}); end