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

    function ptrlist=getptrs(o)
%GETPTRS Return all internal pointers
%
%  ptrlist=getptrs(o) returns all of the pointers used inside cgoptim.
%  This function recurses into objects and also returns their pointers.

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


ptrlist = [];

% pointers to freevariables
p = o.values;
for i = 1:length(p)
    if isvalid(p(i))
        ptrlist = [ptrlist; p(i); getptrs(info(p(i)))];
    end
end

% pointers to objective functions
OFs = o.Objectives;
tmp = cellfun(@getptrs, OFs, 'UniformOutput', false);
ptrlist = [ptrlist; [tmp{:}].'];
    
% pointers to constraints
c = o.Constraints;
tmp = cellfun(@getptrs, c, 'UniformOutput', false);
ptrlist = [ptrlist; [tmp{:}].'];

% pointers to datasets
p = o.oppoints.Datasets;
for i = 1:length(p)
    if isvalid(p(i))
        ptrlist = [ptrlist; p(i); getptrs(info(p(i)))];
    end
end

% pointers to oppoint values
pcell = o.oppoints.Variables;
for i = 1:length(pcell) 
    for j = 1:length(pcell{i})
        p = pcell{i}(j);
        if isvalid(p)
            ptrlist = [ptrlist; p; getptrs(p)];
        end
    end
end