www.gusucode.com > mbcdesign 工具箱 matlab 源码程序 > mbcdesign/@cset_grid/designproperties.m
function p = designproperties(c,p,m) %DESIGNPROPERTIES properties for command-line % % p = designproperties(c,p) % Copyright 2007 The MathWorks, Inc. CLSID = mfilename('class'); [p,OK] = PersistentStore(p,CLSID); if ~OK p = iMakeProps(c,p,m); PersistentStore(p,CLSID); end function p = iMakeProps(c,p,m) p = designproperties(c.candidateset,p,m); p = addprop(p,'NumberOfPoints',... @iGetNumberOfPoints,... '',... 'int',[0 Inf],... 'Number of points'); p = addprop(p,'Levels',... @iGetLevels,... @iSetLevels,... 'cell','',... 'Cell array of levels for each input'); p = addprop(p,'NumberOfLevels',... @iGetNumberLevels,... @iSetNumberLevels,... 'vector int',{'positive',nfactors(m)},... 'Number of levels for each input'); function v = iGetLevels(c,m) v = get(c,'levels'); for i=1:length(v) v{i} = invcode(m,v{i}(:),i)'; end function c = iSetLevels(c,v,m) if numel(v)~=nfactors(m) error(message('mbc:doe:InvalidValue31', nfactors( m ))) end for i=1:length(v) if ~isnumeric(v{i}) error(message('mbc:doe:InvalidValue32', i)) end v{i} = code(m,v{i}(:),i)'; end c = set(c,'levels',v); function v = iGetNumberLevels(c,m) v = cellfun(@numel,get(c,'levels')); v = v(:)'; function c = iSetNumberLevels(c,v,m) lims = limits(c); levels= cell(size(v)); for i=1:length(v) levels{i} = linspace(lims(i,1),lims(i,2),v(i)); end c = set(c,'levels',levels(:)); function v = iGetNumberOfPoints(c,m) v = prod( cellfun(@numel,c.levels) );