www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/@cgoptim/initializeSwitchData.m
function optim = initializeSwitchData(optim,Type) %INITIALIZESWITCHDATA initialize optimization with data from point-by-point model % optim = initializeSwitchData(optim,Type) % Type is 'Model operating points' (default) or 'Unique operating points'. % Copyright 2007-2009 The MathWorks, Inc. if nargin<2 Type = 'Model operating points'; end pInputs = [getfreevalues(optim) getfixedvalues(optim)]; Model = info(getPrimaryExpression(optim)); SwitchModel = getSwitchModel(Model); [OK,loc] = ismember(pInputs,getinputs(SwitchModel)); switchModel = get(SwitchModel,'model') ; switch Type case 'Model operating points' % Use midpoints + operating point data = InitialValues(switchModel); case 'Unique operating points' DS= OpPointDataset(switchModel); data = DS.data; otherwise error(message('mbc:cgoptim:InvalidState12')) end % only use data that is a direct input to model pInputs = pInputs(OK); data = data(:,loc(OK)); NRUN = size(data,1); optim = setNumRuns(optim, NRUN); for i=1:length(pInputs) optim = setinitialvaluedata(optim, pInputs(i), 1:NRUN, data(:,i)); end end