📄 modlgui.m
字号:
post,[431 161 30 20],'Horiz','Right','String',...
num2str(get(handl(3,11),'Max')),'Visible','Off');
handl(2,12) = uicontrol(fig00,'Style','Push',post,[251 11 105 37],...
'String','Execute','Callback',[s1,'''act212'');']);
s = [out,' = modlgui(0,0,',out,',''act312'');'];
handl(3,12) = uicontrol(fig00,'style','push',post,[366 11 105 37],...
'String','Quit','Callback',s,'UserData',out);
handl(4,12) = uicontrol(fig00,'Style','Push',post,[251 11 105 37],...
'String','Resume','Callback',[s1,'''act412'');'],'Visible','Off');
set(fig00,'UserData',[handl]);
else
fig00 = gcf;
handl = get(fig00,'Userdata');
bgc = 'BackgroundColor';
bgc1 = [0.8 0.8 0.8];
post = 'Position';
out = get(handl(3,12),'UserData');
if strcmp(action,'act212')
% check flags and cross validation paramters
% respond with errors or warnings, else do modlmker
set(handl(2,12),'Visible','Off');
x = get(handl(2,2),'Userdata');
y = get(handl(2,3),'Userdata');
[mx,nx] = size(x);
[my,ny] = size(y);
% does the data exist and are the data compatible?
if (isempty(x)|isempty(y))
handl(1,1) = 0;
set(handl(2,4),'string','ERROR - input data not found -',...
bgc,[1 0.2 0.2]);
elseif mx~=my
set(handl(2,4),'string',['ERROR - X and Y blocks must have the ',...
'same number of samples'],bgc,[1 0.2 0.2]);
else
set(handl(2,4),'String','Executing',bgc,[1 1 1]);
handl(1,1) = figure('Name','Model Results',post,[401 169 390 260],...
'Resize','On','NumberTitle','Off');
set(fig00,'UserData',[handl]);
for jj=3:5
if get(handl(jj,2),'Value')==0
set(handl(jj,2),'Visible','Off')
end
if get(handl(jj,3),'Value')==0
set(handl(jj,3),'Visible','Off')
end
end
for jj=8:9
if get(handl(jj,5),'Value')==0
set(handl(jj,5),'Visible','Off')
end
end
for jj=3:6
if get(handl(jj,5),'Value')==0
set(handl(jj,5),'Visible','Off')
end
end
set(handl([3 5 6],7:11),'Visible','Off')
modl = modlmkeg(x,y,fig00,'crval');
end
elseif strcmp(action,'act412')
tstm = get(handl(3,3),'UserData');
set(handl([3 5 6],6),'Visible','Off')
if tstm==1;
set(handl(2,4),bgc,[1 1 1]);
set(handl(4,12),'Visible','Off');
modl = modlmkeg(x,y,fig00,'coefs');
elseif tstm==2;
set(handl(2,4),bgc,[1 1 1]);
set(handl(4,12),'Visible','Off');
modl = modlmkeg(x,y,fig00,'qlims');
elseif tstm==3;
set(handl(2,4),bgc,[1 1 1]);
set(handl(4,12),'Visible','Off');
modl = modlmkeg(x,y,fig00,'tlims');
elseif tstm==4|tstm==5|tstm==6;
set(handl(2,4),bgc,[1 1 1]);
set(handl(4,12),'Visible','Off');
modl = modlmkeg(x,y,fig00,'final');
end
elseif strcmp(action,'act32')
% no scaling
set(handl(3,2),'Value',1);
set(handl(4:5,2),'Value',0);
handl(1,2) = 1;
set(handl(2,4),'String',' ',bgc,[1 1 1]);
elseif strcmp(action,'act42')
% mean centered scaling
set(handl(3:5,2),'Value',0);
set(handl(4,2),'Value',1);
handl(1,2) = 2;
set(handl(2,4),'String',' ',bgc,[1 1 1]);
elseif strcmp(action,'act52')
% autoscaling
set(handl(3:4,2),'Value',0);
set(handl(5,2),'Value',1);
handl(1,2) = 3;
set(handl(2,4),'String',' ',bgc,[1 1 1]);
elseif strcmp(action,'act33')
% partial least squares
set(handl(3,3),'Value',1);
set(handl(4:5,3),'Value',0);
set(handl(2:6,5),'Visible','on');
set(handl(7:9,5),'Visible','off');
modlgui(0,0,out,'act35');
handl(1,3) = 2;
set(handl(2,4),'String',' ',bgc,[1 1 1]);
elseif strcmp(action,'act43')
% principle components regression
set(handl(3:5,3),'Value',0);
set(handl(4,3),'Value',1);
set(handl(2:6,5),'Visible','On');
set(handl(7:9,5),'Visible','Off');
modlgui(0,0,out,'act35');
handl(1,3) = 1;
set(handl(2,4),'String',' ',bgc,[1 1 1]);
elseif strcmp(action,'act53')
% ridge regression
set(handl(3:4,3),'Value',0);
set(handl(5,3),'Value',1);
set(handl(2:6,5),'Visible','Off');
set(handl(7:9,5),'Visible','On');
modlgui(0,0,out,'act85');
handl(1,3) = 3;
set(handl(2,4),'String',' ',bgc,[1 1 1]);
% cross-validation method
elseif strcmp(action,'act35')
% venetian blinds
set(handl(3,5),'Value',1);
set(handl(4:6,5),'Value',0);
set(handl(2:6,6:7),'Visible','On');
set(handl(2:6,8:11),'Visible','Off');
handl(1,5) = 1;
set(handl(2,4),'string',' ',bgc,[1 1 1]);
elseif strcmp(action,'act45')
% leave one out
set(handl(3:6,5),'value',0);
set(handl(4,5),'value',1);
set(handl(2:6,6),'Visible','On');
set(handl(2:6,7:11),'Visible','Off');
handl(1,5) = 2;
set(handl(2,4),'string',' ',bgc,[1 1 1]);
elseif strcmp(action,'act55')
% contiguous block
set(handl(3:6,5),'value',0);
set(handl(5,5),'value',1);
set(handl(2:6,6:7),'Visible','On');
set(handl(2:6,8:11),'Visible','Off');
handl(1,5) = 3;
set(handl(2,4),'string',' ',bgc,[1 1 1]);
elseif strcmp(action,'act65')
% sdep
set(handl(3:5,5),'value',0);
set(handl(6,5),'value',1);
set(handl(2:6,6:8),'Visible','On');
set(handl(2:6,9:11),'Visible','Off');
handl(1,5) = 4;
set(handl(2,4),'string',' ',bgc,[1 1 1]);
% RR venetian
elseif strcmp(action,'act85')
set(handl(8,5),'value',1);
set(handl(9,5),'value',0);
set(handl(2:6,6:8),'Visible','Off');
set(handl(2:6,9:11),'Visible','On');
handl(1,5) = 2;
% Hoerl Kennard
elseif strcmp(action,'act95')
set(handl(8,5),'value',0);
set(handl(9,5),'value',1);
set(handl(2:6,6:8),'Visible','Off');
set(handl(2:6,9:10),'Visible','On');
set(handl(2:6,11),'Visible','Off');
handl(1,5) = 1;
%
elseif strcmp(action,'act36')
lvs = round(get(handl(3,6),'Value'));
set(handl(4,6),'String',num2str(lvs));
elseif strcmp(action,'act37')
split = round(get(handl(3,7),'Value'));
set(handl(4,7),'String',num2str(split));
elseif strcmp(action,'act38')
cvr = round(get(handl(3,8),'Value'));
set(handl(4,8),'String',num2str(cvr));
elseif strcmp(action,'act39')
tmax = round(get(handl(3,9),'Value')*100)/100;
set(handl(4,9),'String',num2str(tmax));
elseif strcmp(action,'act310')
tdiv = round(get(handl(3,10),'Value'));
set(handl(4,10),'String',num2str(tdiv));
elseif strcmp(action,'act311')
split = round(get(handl(3,11),'Value'));
set(handl(4,11),'String',num2str(split));
end
if strcmp(action,'act312')
close;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -