📄 als2004.m
字号:
function popupmenu4_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = get(hObject,'String') returns popupmenu4 contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu4
popmenu4=get(handles.popupmenu4,'String');
pm4=get(handles.popupmenu4,'Value');
if pm4==1
else
selec4=char([popmenu4(pm4)]);
iniesta=evalin('base',selec4);
assignin('base','iniesta',iniesta);
evalin('base','als_opt.iniesta=iniesta;');
matdad=evalin('base','als_opt.matdad');
% check dimensions of initial estimates
[nrow,ncol]=size(matdad);
[nrow2,ncol2]=size(iniesta);
if nrow2==nrow, nsign=ncol2; ils=1;end
if ncol2==nrow, nsign=nrow2; iniesta=iniesta'; ils=1; end
if ncol2==ncol, nsign=nrow2; ils=2;end
if nrow2==ncol, nsign=ncol2; iniesta=iniesta'; ils=2; end
if ils==1,
conc=iniesta;
assignin('base','conc',conc);
[nrow,nsign]=size(conc);
abss=conc\matdad;
assignin('base','abss',abss);
axes(handles.conc);
[xi,yi]=size(conc);
maxim=max(max(conc));minim=min(min(conc));
if maxim > 0
maxim1=maxim+0.2*maxim;
else
maxim1=maxim-0.2*abs(maxim)
end
if minim > 0
minim1=minim+0.2*minim;
else
minim1=minim-0.2*abs(minim);
end
plot(conc);axis([1 xi minim1 maxim1]);title('Initial estimates of the concentration profiles');zoom on
axes(handles.spec);
[xi,yi]=size(abss);
maxim=max(max(abss));minim=min(min(abss));
if maxim > 0
maxim1=maxim+0.2*maxim;
else
maxim1=maxim-0.2*abs(maxim)
end
if minim > 0
minim1=minim+0.2*minim;
else
minim1=minim-0.2*abs(minim);
end
plot(abss');axis([1 yi minim1 maxim1]);title('Unconstrained spectra calculated by LS (iter 1)');zoom on
% pca reproduction
disp(' *********** Results obtained after application of PCA to the data matrix ***********');
disp(' ');
[u,s,v,d,sd]=pcarep(matdad,nsign);
disp(' ');
disp(' ************************************************************************************');
disp(' ');
disp(' ');
axes(handles.scores);
scmat=u*s;
[xi,yi]=size(scmat);
maxim=max(max(scmat));minim=min(min(scmat));
if maxim > 0
maxim1=maxim+0.2*maxim;
else
maxim1=maxim-0.2*abs(maxim)
end
if minim > 0
minim1=minim+0.2*minim;
else
minim1=minim-0.2*abs(minim);
end
plot(scmat);axis([1 xi minim1 maxim1]);title('Scores matrix');zoom on
axes(handles.loadings);
[xi,yi]=size(v);
maxim=max(max(v));minim=min(min(v));
if maxim > 0
maxim1=maxim+0.2*maxim;
else
maxim1=maxim-0.2*abs(maxim)
end
if minim > 0
minim1=minim+0.2*minim;
else
minim1=minim-0.2*abs(minim);
end
plot(v);axis([1 xi minim1 maxim1]);
title('Loadings matrix');zoom on
end
if ils==2,
abss=iniesta;
assignin('base','abss',abss);
[nsign,ncol]=size(abss);
conc=matdad/abss;
assignin('base','conc',conc);
axes(handles.conc);
[xi,yi]=size(conc);
maxim=max(max(conc));minim=min(min(conc));
if maxim > 0
maxim1=maxim+0.2*maxim;
else
maxim1=maxim-0.2*abs(maxim)
end
if minim > 0
minim1=minim+0.2*minim;
else
minim1=minim-0.2*abs(minim);
end
plot(conc);axis([1 xi minim1 maxim1]);title('Unconstrained concentration profiles calculated by LS (iter 1)');zoom on
axes(handles.spec);
[xi,yi]=size(abss);
maxim=max(max(abss));minim=min(min(abss));
if maxim > 0
maxim1=maxim+0.2*maxim;
else
maxim1=maxim-0.2*abs(maxim)
end
if minim > 0
minim1=minim+0.2*minim;
else
minim1=minim-0.2*abs(minim);
end
plot(abss');axis([1 yi minim1 maxim1]);title('Initial estimates of the spectra');zoom on
% pca reproduction
disp(' *********** Results obtained after application of PCA to the data matrix ***********');
disp(' ');
[u,s,v,d,sd]=pcarep(matdad,nsign);
disp(' ');
disp(' ************************************************************************************');
disp(' ');
disp(' ');
axes(handles.scores);
scmat=u*s;
[xi,yi]=size(scmat);
maxim=max(max(scmat));minim=min(min(scmat));
if maxim > 0
maxim1=maxim+0.2*maxim;
else
maxim1=maxim-0.2*abs(maxim)
end
if minim > 0
minim1=minim+0.2*minim;
else
minim1=minim-0.2*abs(minim);
end
plot(scmat);axis([1 xi minim1 maxim1]);title('Scores matrix');zoom on
axes(handles.loadings);
[xi,yi]=size(v);
maxim=max(max(v));minim=min(min(v));
if maxim > 0
maxim1=maxim+0.2*maxim;
else
maxim1=maxim-0.2*abs(maxim)
end
if minim > 0
minim1=minim+0.2*minim;
else
minim1=minim-0.2*abs(minim);
end
plot(v);axis([1 xi minim1 maxim1]);
title('Loadings matrix');zoom on
end
set(handles.pushbutton1,'enable','on')
end
% *************************************************************************
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
nexp=str2double(get(handles.edit3,'String'));
assignin('base','nexp',nexp);
evalin('base','als_opt.nexp=nexp;');
evalin('base','clear conc abss nexp matdad iniesta');
% *************************************************************************
% initializations for constraints
evalin('base','als_opt.noneg.noneg=0;');
evalin('base','als_opt.unimod.unimodal=0;');
evalin('base','als_opt.closure.closure=0;');
evalin('base','als_opt.cselc.cselcon=0;');
evalin('base','als_opt.sselc.sselcon=0;');
evalin('base','als_opt.trilin.tril=0;');
evalin('base','als_opt.multi.datamod=0;');
evalin('base','als_opt.opt.gr=''n'';');
% *************************************************************************
close;
if evalin('base','als_opt.nexp') > 1
clas3way;
else
als2004m;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -