www.gusucode.com > mbcdesign 工具箱 matlab 源码程序 > mbcdesign/@xregdesign/subsasgn.m
function des=subsasgn(des,s,val) % DESIGN/SUBSASGN % Provides dot indexing for design object methods % Copyright 2000-2004 The MathWorks, Inc. and Ford Global Technologies, Inc. if length(s)==1 tp=s.type; fn=s.subs; else tp=s(1).type; fn=s(1).subs; end if length(s)==1 if strcmp(tp,'.') des=feval(fn,des,val); elseif strcmp(tp,'()') if ~isempty(val) rchng=[]; if length(fn)==2 if ischar(fn{1}) & strcmp(fn{1},':') rchng=1:size(des.design,1); else rchng=fn{1}; end else % linear/logical if islogical(fn{1}) rchng=find(sum(fn{1},2)); elseif ischar(fn{1}) & strcmp(fn{1},':') rchng=1:size(des.design,1); else [rchng,col]=ind2sub(size(des.design),fn{1}); end end des.design=subsasgn(des.design,s(1),val); des.designindex(rchng)=0; des.designstate=des.designstate+1; des=DesignType(des,0,[]); end end else if strcmp(tp,'.'); out=feval(fn,des); out=subsasgn(out,s(2:end),val); des=feval(fn,des,out); end end return