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

    function optim = mapptr(optim, RefMap)
%MAPPTR Remap internal pointers
%
%  EXPR = MAPPTR(EXPR, REFMAP) remaps pointers in the object according to
%  REFMAP.

%  Copyright 2000-2009 The MathWorks, Inc. and Ford Global Technologies, Inc.


optim.values = mapptr(optim.values,RefMap);
optim.oppoints=mapptr(optim.oppoints,RefMap);

for i = 1:length(optim.Objectives)
    optim.Objectives{i} = mapptr(optim.Objectives{i},RefMap);
end
for i = 1:length(optim.Constraints)
    optim.Constraints{i} = mapptr(optim.Constraints{i},RefMap);
end


% Map any pointers in the upgrade data
if ~isempty(optim.V11UpgradeData)
    optim.V11UpgradeData.ObjectivePtrs = ...
        mapptr(optim.V11UpgradeData.ObjectivePtrs, RefMap);
    optim.V11UpgradeData.ConstraintPtrs = ...
        mapptr(optim.V11UpgradeData.ConstraintPtrs, RefMap);

    if ~isempty(optim.V11UpgradeData.V8OutputData)
        optim.V11UpgradeData.V8OutputData.OppointPtrs = ...
            mapptr(optim.V11UpgradeData.V8OutputData.OppointPtrs, RefMap);
        optim.V11UpgradeData.V8OutputData.ParetoPtrs = ...
            mapptr(optim.V11UpgradeData.V8OutputData.ParetoPtrs, RefMap);
    end
    
    if ~isempty(optim.V11UpgradeData.V11OutputData)
        optim.V11UpgradeData.V11OutputData.outputColumns = ...
            mapptr(optim.V11UpgradeData.V11OutputData.outputColumns, RefMap);
        optim.V11UpgradeData.V11OutputData.outputWeightsColumns = ...
            mapptr(optim.V11UpgradeData.V11OutputData.outputWeightsColumns, RefMap);
    end
end