www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@xregexportmodel/shareConstraints.m
function varargout = shareConstraints(varargin) %shareConstraints share constraints between models % [m1,m2,...,mn]= shareConstraints(m1,m2,...,mn) % Constraints are shared between models using boundaryModelWrappers if they have the same inputs. % Care should be taken when calling this function to ensure that constraints should really be % shared. For example, if the models are all from the same test plan or composite models are % created from the same mbcmodel project. % Copyright 2011 The MathWorks, Inc. and Ford Global Technologies, Inc. shared = iConstraintInfo(varargin{1}); varargout = varargin; varargout{1}.constraints = shared.constraints; for i=2:nargin m = varargin{i}; si = iConstraintInfo(m); % find constraints with the same inputs Found = cellfun( @(shared) isequal(si.symbols,shared) ,{shared.symbols}); if any(Found) % copy shared constraints m.constraints = shared(Found).constraints; varargout{i}= m; else % different model - add new constraints shared = [shared si]; end end function s = iConstraintInfo(m) s.constraints = m.constraints; if isa(s.constraints,'conbase') % make boundary model wrapper to share constraints s.constraints = boundaryModelWrapper(s.constraints); end s.symbols = m.symbols;