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}));