www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@cgoptimoutput/private/pGenerateOutputNames.m

    function Labels = pGenerateOutputNames(obj, opts)
%PGENERATEOUTPUTNAMES Generate output data labels.
%
%   LABELS = PGENERATEOUTPUTNAMES(OBJ, OPTS) generates a cell array of
%   output column labels for an output that is created according to the
%   provided options OPTS.

%   Copyright 2005-2006 The MathWorks, Inc.


options = getOptimOptions(obj.optimRunner, 'full');

Labels = {};
Sizes = [];
for n =1:length(opts.OutputContents)
    if opts.OutputContents(n) == opts.OutputFreeVars
        Labels = [Labels, getFreeVariableNames(obj.optimRunner)];
        Sizes = [Sizes, numFreeValues(obj.optimRunner)];
    end
    if opts.OutputContents(n) == opts.OutputFixedVars
        Labels = [Labels, getFixedVariableNames(obj.optimRunner)];
        Sizes = [Sizes, numFixedValues(obj.optimRunner)];
    end
    if opts.OutputContents(n) == opts.OutputObjectives
        Labels = [Labels, getObjectiveLabels(options)];
        Sizes = [Sizes, numObjectives(obj.optimRunner)];
    end
    if opts.OutputContents(n) == opts.OutputConstraints ...
            ||  opts.OutputContents(n) == opts.OutputConstraintLHS ...
            ||  opts.OutputContents(n) == opts.OutputConstraintRHS ...
            ||  opts.OutputContents(n) == opts.OutputConstraintFeas
        Labels = [Labels, getConstraintLabels(options)];
        Sizes = [Sizes, numConstraints(obj.optimRunner)];
    end
end

if opts.ConcatenateOutput
    % Expand labels up so there is one for each concatenated column
    k = 1;
    Base = Labels;
    Labels = cell(1, sum(Sizes));
    for n = 1:length(Base)
        Labels(k:k+Sizes(n)-1) = pGenerateOptimItemStrings(Base{n}, Sizes(n));
        k = k+Sizes(n);
    end
end