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

    function varargout = staticNaturalEvaluate(obj, varargin)
%STATICNATURALEVALUATE Evaluate the item at a set of inputs and expression values.
%
%   OUT = STATICNATURALEVALUATE(OBJ, INPUTVALUES, EXPRVALS) evaluates the
%   optimization item at a set of input values given the set of expression
%   output values EXPRVALS and returns outputs for each input set.
%   INPUTVALUES must be a cell array with the same number of elements as
%   the item has inputs.  Each cell contains a matrix of data for that
%   input.  EXPRVALS must be a cell array with the same number of elements
%   as there are expressions in the expression/function list provided by
%   the GETSTATICEXPRESSIONS method.  The output is a matrix of evaluation
%   values. These values should match the values that are produced by the
%   call NATURALEVALUATE(OBJ, INPUTVALUES).
%
%   [OUT, GRAD] = STATICNATURALEVALUATE(OBJ, ..., GRADVALS, GRADVARS) also
%   calculates the gradient of the objective, given the gradients of the
%   expression values.  GRAVALS is a cell array the same size as EXPRVALS
%   that contains a 3D matrix for each 2D matrix of expression evaluations
%   in EXPRVALS.  The 3rd dimension contains the gradients with respect to
%   each free variable value.  GRADVARS is a vector of input indices that
%   indicates which inputs the expression gradients have been calculated
%   for.  GRAD should be a 3D matrix with the first two dimensions the same
%   size as OUT, and the 3rd dimension the same size as the 3rd dimension
%   of the expression gradients, i.e. a gradient should be produced for
%   each variable value GRADVARS specifies.

%   Copyright 2005 The MathWorks, Inc.


% Default action is to pass the call on to the standard staticEvaluate, but
% with the scaling turned off.
obj = setOutputScaled(obj, false);
[varargout{1:nargout}] = staticEvaluate(obj, varargin{:});