Global Index (short | long) | Local contents | Local Index (short | long)
err=iduiconf(arg,strr)
IDUICONF Manages the confidence interval lines. ARG: onoff Checks the right menu item and toggles visibility of confidence lines set Sets the confidence according to the submenu conf Opens the dialog box l1cb Handles the info in the box when slider has changed 2 Ditto when # of standard deviations has changed 3 Ditto when desired confidence level has changed apply Effectuates the new choice. The # of standard deviations are put as UserData of XIDmen(figno,8)
This function calls | This function is called by |
---|---|
function err=iduiconf(arg,strr) % L. Ljung 4-4-94 % Copyright (c) 1986-98 by The MathWorks, Inc. % $Revision: 2.7 $ $Date: 1997/12/02 03:42:45 $ set(0,'Showhiddenhandles','on'); global XIDplotw XIDcf XIDlayout if strcmp(arg,'onoff')|strcmp(arg,'conf')|strcmp(arg,'set') hconf=findobj(gcf,'tag','confonoff'); number=iduigetp(gcf); xusd=get(gcf,'UserData');[rxusd,cxusd]=size(xusd); xax=xusd(3:rxusd,1)'; onoff=0; hm=gcbo;%get(gcf,'currentmenu'); end if strcmp(arg,'onoff') offon=get(hm,'checked'); if strcmp(offon,'off'), iduistat('Marking confidence intervals ...',0,number) onoff1='on';onoff2='off'; else onoff2='on';onoff1='off'; end [actmod,cacmod,confq]=fiactham; if strcmp(onoff1,'on'),if ~isempty(confq),idconfcp(confq),end,end for kk=xax if strcmp(get(kk,'visible'),'on') xusd=get(kk,'userData');[rxusd,cxusd]=size(xusd); indxv=2*actmod+2; iduivis(xusd(indxv,:),onoff1); if strcmp(onoff1,'on') if any(any(xusd(indxv,:)==-1)) iduistat('No confidence region for N4SID models.',0,number) elseif any(any(xusd(indxv,:)==-2)) iduistat('No confidence region for ETFE models.',0,number) else iduistat('Confidence intervals marked by dash-dotted lines.',0,number) end % if anyany else % of onoff1 iduistat('Confidence intervals removed.',0,number) end end end set(hm,'checked',onoff1) elseif strcmp(arg,'set') lab=get(hm,'label');labb=lab(find(lab~='&')); ch=get(hconf,'checked'); set(hconf,'label',menulabel(['Show ',labb,' confidence &intervals'])); set(hconf,'checked',ch); set(hconf,'userdata',get(hm,'userdata')); iduiclpw(number); iduistat(['Confidence interval changed to ',lab '.']) elseif strcmp(arg,'conf') figname=idlaytab('figname',29); iduistat('Opening confidence dialog box ...') if ~figflag(figname,0) iduistat('Opening confidence dialog box ...') layout butwh=[mStdButtonWidth mStdButtonHeight];%butw=55;buth=25; butw=butwh(1);buth=butwh(2); ftb=mFrameToText; % Frame to button bb = 2; % between buttons etf = mEdgeToFrame; FigW = iduilay2(3); XIDcf(1)=figure('HandleVisibility','callback',... 'NumberTitle','off','Name',figname,'vis','off','tag','sitb29',... 'Color',get(0,'DefaultUIControlBackgroundColor')); set(XIDcf(1),'Menubar','none'); s1='iduipoin(1);';s2='iduipoin(1);iduistat(''Compiling ...'');'; s3='iduipoin(3);'; % LEVEL 1 pos = iduilay1(FigW,3); uicontrol(XIDcf(1),'pos',pos(1,:),'style','frame'); uicontrol(XIDcf(1),'Pos',pos(2,:),'style','push',... 'string','Apply','callback',[s1,'iduiconf(''apply'');',s3]); uicontrol(XIDcf(1),'Pos',pos(3,:),'style','push',... 'callback','set(gcf,''visible'',''off'')','string','Close'); uicontrol(XIDcf(1),'Pos',pos(4,:),'style','push',... 'string','Help','callback','iduihelp(''idsetcon.hlp'',''Setting the Confidence Interval'');'); % LEVEL2 lev2 = pos(1,2)+pos(1,4)+mStdButtonHeight/2; XIDcf(2)=uicontrol(XIDcf(1),'pos',... [etf+ftb lev2 FigW-2*(etf+ftb) buth],'style','slider',... 'max',10,'min',0,'callback',[s1,'iduiconf(''l1cb'');',s3]); % LEVEL 3 lev3 = lev2+buth+mStdButtonHeight/2; pos = iduilay1(FigW,4,2,lev3,4,1.5); uicontrol(XIDcf(1),'pos',pos(1,:),'style','frame'); XIDcf(3)=uicontrol(XIDcf(1),'pos',pos(4,:),'style','edit',... 'callback',[s1,'iduiconf(''2'');',s3],'backgroundcolor','white',... 'HorizontalAlignment','left'); uicontrol(XIDcf(1),'pos',pos(2,:),'style','text','string',... 'Number of std dev''s','HorizontalAlignment','left'); XIDcf(4)=uicontrol(XIDcf(1),'pos',pos(5,:),'style','edit',... 'callback',[s1,'iduiconf(''3'');',s3],'backgroundcolor','white',... 'HorizontalAlignment','left'); uicontrol(XIDcf(1),'pos',pos(3,:),'style','text','string',... 'Confidence level','HorizontalAlignment','left'); FigWH=[FigW pos(1,2)+pos(1,4)+etf]; ScreenPos = get(0,'ScreenSize'); FigPos=[(ScreenPos(3:4)-FigWH)/2 FigWH]; set(XIDcf(1),'pos',FigPos); set(get(XIDcf(1),'children'),'unit','norm'); if length(XIDlayout)>28 if XIDlayout(29,3) eval('set(XIDcf(1),''pos'',XIDlayout(29,1:4))','') end end set(XIDcf(1),'vis','on') end iduistat('Ready to set confidence level.') set(XIDcf(1),'userdata',number); sd=get(hconf,'userdata'); set(XIDcf(3),'string',num2str(sd)); iduiconf('2'); elseif strcmp(arg,'l1cb') val=get(XIDcf(2),'value'); set(XIDcf(3),'string',num2str(val)) numv=erf(val/sqrt(2)); if numv<0.999 str=num2str(numv); else str=['1-',num2str(erfc(val/sqrt(2)))]; end set(XIDcf(4),'string',str); elseif strcmp(arg,'2') strr=get(XIDcf(3),'string'); if iduiconf('test',strr), set(0,'Showhiddenhandles','off'); return end val=eval(strr); numv=erf(val/sqrt(2)); if numv<0.999 str=num2str(numv); else str=['1-',num2str(erfc(val/sqrt(2)))]; end set(XIDcf(4),'string',str); set(XIDcf(2),'value',val) elseif strcmp(arg,'3') strr=get(XIDcf(4),'string'); if iduiconf('test',strr), set(0,'Showhiddenhandles','off'); return end val1=eval(strr); val=erfinv(val1)*sqrt(2); set(XIDcf(2),'value',val) set(XIDcf(3),'string',num2str(val)) elseif strcmp(arg,'apply') number=get(XIDcf(1),'userdata'); val=get(XIDcf(4),'string'); ssd=get(XIDcf(3),'string'); if iduiconf('test',val)|iduiconf('test',ssd), set(0,'Showhiddenhandles','off'); return end nval=eval(val);strval=[num2str(nval*100),'%'];sd=eval(ssd); hconf=findobj(XIDplotw(number,1),'tag','confonoff'); ch=get(hconf,'checked'); set(hconf,'Label',menulabel(['Show ',strval,' confidence &intervals']),'userdata',sd); iduiclpw(number); iduistat(['Confidence interval changed to ',strval '.']) elseif strcmp(arg,'test') err=0; eval('val=eval(strr);','err=1;') msg=str2mat('The entry must be a positive real number.'); if err, errordlg(msg); set(0,'Showhiddenhandles','off'); return end if length(val)>1|length(val)<1, errordlg(msg); set(0,'Showhiddenhandles','off'); return end if val<0|isstr(val), errordlg(msg); set(0,'Showhiddenhandles','off'); return end end set(0,'Showhiddenhandles','off');