www.gusucode.com > mbcexpr 工具箱 matlab 源码程序 > mbcexpr/+cgsimfill/@Feature/getOptimValues.m

    function [V0,JPattern,Bnds,A,C] =  getOptimValues(F)
%getOptimValues 
%
% [V0,JPattern,Bnds,A,C] =  getOptimValues(F)
%    V0 Initial table values
%    JPattern Jacobian Pattern
%    Bnds     Bounds on Table Values
%    A,C      Linear constraints for table gradients

%  Copyright 2005-2009 The MathWorks, Inc.


nTabs= length(F.Tables);

V0= [];
JPattern=logical([]);
Bnds=[];
A= [];
C= [];

for i=1:nTabs
    T= F.Tables(i);
    if ~isempty(T.Values)
        sf= T.ScaleFactor;
        V= T.Values/sf;
        % concatenate values
        V0= [V0 ; V];
        % make sure concatenation of Jacobian patterns works
        if size(JPattern,1)==1 && size(T.JacobPattern,1)>1
            JPattern = repmat(JPattern,size(T.JacobPattern,1),1);
        end
        if size(T.JacobPattern,1)==1 && size(JPattern,1)>1
            T.JacobPattern = repmat(T.JacobPattern,size(JPattern,1),1);
        end
        
        JPattern= [JPattern T.JacobPattern];
        Bnds= [Bnds ; repmat(T.Bounds/sf,length(V),1)];
        % Gradient Constraints
        A= blkdiag(A,T.LinearConstraints{1}*sf);
        C= [C ; T.LinearConstraints{2}];
    end
end

if size(JPattern,1)==1
    % don't use sparsity pattern if there is only one row
    JPattern= [];
end