www.gusucode.com > mbcdesign 工具箱 matlab 源码程序 > mbcdesign/@coninputfactor/merge.m

    function [Inp,IndexB] = merge(InpA,InpB)
%MERGE merge inputs based on names
%
% [Inp,IndexB] = merge(InpA,InpB)

%  Copyright 2007-2010 The MathWorks, Inc. 

Inp = InpA;
OK = ismember(getSymbols(InpB),getSymbols(InpA));
if ~all(OK)
    % add any new inputs
    Inp = [InpA  subsref(InpB, substruct('()',{~OK}))];
end
[~,IndexB] = ismember(getSymbols(InpB),getSymbols(Inp));
R = getRange(Inp);
Rb = getRange(InpB);
for i=1:length(InpB)
    % merge ranges
    j = IndexB(i);
    r = R(:,j);
    rb = Rb(:,i);
    R(:,j) = [min(r(1),rb(1)) ; max(r(2),rb(2))];
end
Inp = setRange(Inp,R);