www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@cgoptim/duplicateConstraint.m

    function optim = duplicateConstraint(optim,index)
%DUPLICATECONSTRAINT duplicate constraint 
%
%  DUPLICATECONSTRAINT(OBJ,INDEX) copies the current constraint.

%  Copyright 2008-2009 The MathWorks, Inc.


if ~canAddConstraint(optim.OptimSetup)
    error(message('mbc:cgoptim:InvalidState'));
end


optim.OptimSetup = duplicateConstraint(optim.OptimSetup,index);
c = getConstraints(optim.OptimSetup);
label = c(end).label;

optimcon = optim.Constraints{index};
optimcon = duplicate(optimcon);
optimcon = setName(optimcon, label);
optim.Constraints = [optim.Constraints, {optimcon}]; 
optim.ConstraintEnabled = [optim.ConstraintEnabled, optim.ConstraintEnabled(index)];
% add dataset 
optim.oppoints = addConstraint(optim.oppoints,optim.oppoints.Constraints(index));