www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@mbcinputfactor/copyToInternal.m
function varargout = copyToInternal(obj,varargin) %COPYTOINTERNAL % % varargout = copyToInternal(obj,varargin) % Copyright 2007 The MathWorks, Inc. n = length(varargin); varargout = varargin; Args = varargin; for i=1:length(obj) for j=1:n Args{j} = varargin{j}(i); end [Args{:}] = copyToInternalRanges(obj(i),Args{:}); for j=1:n varargout{j}(i)= Args{j}; end end function varargout = copyToInternalRanges(obj,varargin) %COPYTOINTERNALRANGES % % varargout = copyToInternalRanges(obj,varargin) % Copyright 2007 The MathWorks, Inc. n = length(varargin); varargout = varargin; c1 = varargin{1}; IsSame = true; SameTgt = true; for j=2:n cj = varargin{j}; IsSame = IsSame && IsSameCoding(c1,cj); SameTgt = IsSame && SameTgt && isequal(c1.RealTarget,cj.RealTarget); end if SameTgt % copy target to range for j=1:n cout = varargin{j}; % use target from outer model if outer model has finite target % otherwise use internal target CopyTarget = all(isfinite(obj.Target)); cout= copyinputs(cout,obj,CopyTarget); varargout{j}= cout; end else % no change to internal models for j=1:n cout = varargin{j}; if IsSame && ~isempty(obj.NonlinearTransform) cout.NonlinearTransform = obj.NonlinearTransform; end varargout{j} = cout; end end