www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@cgoptimoutput/private/pEvaluateItems.m
function data = pEvaluateItems(obj, type, indata, runIdx) %PEVALUATEITEMS Evaluate optimization items % % Copyright 2005 The MathWorks, Inc. % If empty input matrix specified, then just return if isempty(indata) data = []; return end % Get number of items switch type case 'objectives' [unused, nO] = numObjectives(obj.optimRunner); case 'constraints' [unused, nO] = numConstraints(obj.optimRunner); end % Initialise return matrix data = zeros(size(indata, 1), nO, size(indata, 3)); % Evaluate required items for i = 1:length(runIdx) indatainds = runIdx==runIdx(i); thisIndata = indata(indatainds, :, :); if size(thisIndata, 3) > 1 % Assumes that for 3-d input data, the size of the first dimension % will be NRUNS, with one run per row. IS3D = true; thisIndata = permute(thisIndata, [3 2 1]); else IS3D = false; end obj.optimRunner = nextRun(obj.optimRunner); switch type case 'objectives' thisdata = evaluateObjective(obj.optimRunner, thisIndata); case 'constraints' thisdata = evaluateConstraint(obj.optimRunner, thisIndata); end if IS3D data(indatainds, :, :) = permute(thisdata, [3 2 1]); else data(indatainds, :) = thisdata; end end