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

    function [vloop,ES] = initLoops(F,N)
%INITLOOPS initialize loops
%
% [vloop,ES] = initLoops(F,N)

%  Copyright 2008 The MathWorks, Inc.

pLoops = F.Loops(1,:);
vals = cell(1,length(pLoops));
vloop = zeros(N,1);
for i=1:length(pLoops)
    vloop(:) = getnomvalue(pLoops(i).info);
    % expand loop variable and assign to loop variable
    vals{i} = vloop;
end
passign(pLoops, parrayeval(pLoops,@setvalue,{vals}));

% use an eval object to do fast evaluation
ES = cgsimfill.ExpressionChain(F.Object);
% add loop expressions to eval object
for j=1:size(F.Loops,2)
    addExpression(ES,F.Loops(2,j).info)
end

% do 5 iterations to get reasonable values for loop
[y,ceq] = evalLoop(ES,F.Loops);
vloop = y(:,2:end);
vals = num2cell(vloop,1);
passign(pLoops, parrayeval(pLoops,@setvalue,{vals}));