⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 als2004multi.m

📁 多元曲线解析-交替最小二乘法,MCR-ALS
💻 M
📖 第 1 页 / 共 5 页
字号:
function edit_tolunis_Callback(hObject, eventdata, handles)
% hObject    handle to edit_tolunis (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit_tolunis as text
%        str2double(get(hObject,'String')) returns contents of edit_tolunis as a double

smod= str2num(get(hObject,'String'));

if smod==1,
    smod=1.0001;
end

assignin('base','smod',smod);
evalin('base','als_opt.unimod.smod=smod;');
evalin('base','clear smod');


% *************************************************************************
% closure
% *************************************************************************


% --- Executes on button press in check_clos.
function check_clos_Callback(hObject, eventdata, handles)
% hObject    handle to check_clos (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of check_clos

closure=get(hObject,'Value');

if closure==1;
    set(handles.radio_cclos,'enable','on');
    set(handles.radio_sclos,'enable','on');
else
    set(handles.check_vclos,'enable','off','value',0);
    set(handles.text_vclos1,'enable','off');
    set(handles.edit_vclos1,'enable','off','string',' ');
    set(handles.text_vclos2,'enable','off');
    set(handles.edit_vclos2,'enable','off','string',' ');

    set(handles.radio_cclos,'enable','off','value',0);
    set(handles.radio_sclos,'enable','off','value',0);

    set(handles.text_nclos,'enable','off');
    set(handles.popup_nclos,'enable','off','value',1);

    set(handles.text_1clos,'enable','off');
    set(handles.edit_1clos,'enable','off','string',' ');
    set(handles.text_2clos,'enable','off');
    set(handles.edit_2clos,'enable','off','string',' ');

    set(handles.text_1closcond,'enable','off');
    set(handles.popup_1closcond,'enable','off','value',1);
    set(handles.text_2closcond,'enable','off');
    set(handles.popup_2closcond,'enable','off','value',1);

    set(handles.check_1clos,'enable','off','value',0);
    set(handles.check_2clos,'enable','off','value',0);
    set(handles.text_1spclos,'enable','off');
    set(handles.edit_1spclos,'enable','off','string',' ');
    set(handles.text_2spclos,'enable','off');
    set(handles.edit_2spclos,'enable','off','string',' ');

    evalin('base','als_opt=rmfield(als_opt,''closure'');');
end;

assignin('base','closure',closure);
evalin('base','als_opt.closure.closure=closure;');
evalin('base','clear closure');

vc=0;
assignin('base','vc',vc);
evalin('base','als_opt.closure.vc=vc;');
evalin('base','clear vc');


% --- Executes on button press in radio_cclos.
function radio_cclos_Callback(hObject, eventdata, handles)
% hObject    handle to radio_cclos (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radio_cclos

dc=1;

set(handles.radio_sclos,'enable','off','value',0);

set(handles.text_nclos,'enable','on');
set(handles.popup_nclos,'enable','on','value',1);

set(handles.text_1clos,'enable','off');
set(handles.edit_1clos,'enable','off','string',' ');
set(handles.text_2clos,'enable','off');
set(handles.edit_2clos,'enable','off','string',' ');

set(handles.text_1closcond,'enable','off');
set(handles.popup_1closcond,'enable','off','value',1);
set(handles.text_2closcond,'enable','off');
set(handles.popup_2closcond,'enable','off','value',1);

set(handles.check_1clos,'enable','off','value',0);
set(handles.check_2clos,'enable','off','value',0);
set(handles.text_1spclos,'enable','off');
set(handles.edit_1spclos,'enable','off','string',' ');
set(handles.text_2spclos,'enable','off');
set(handles.edit_2spclos,'enable','off','string',' ');

set(handles.check_vclos,'enable','off');
set(handles.text_vclos1,'enable','off');
set(handles.edit_vclos1,'enable','off','string',' ');
set(handles.text_vclos2,'enable','off');
set(handles.edit_vclos2,'enable','off','string',' ');

dim=evalin('base','min(size(als_opt.iniesta))');
assignin('base','dim',dim);
matc=evalin('base','als_opt.multi.matc');
assignin('base','matc',matc);
matr=evalin('base','als_opt.multi.matr');
assignin('base','matr',matr);
evalin('base','als_opt.closure.tclos1(1:matc)=zeros(1,matc);');
evalin('base','als_opt.closure.tclos2(1:matc)=zeros(1,matc);');
evalin('base','als_opt.closure.sclos1(1:matc,1:dim)=zeros(matc,dim);');
evalin('base','als_opt.closure.sclos2(1:matc,1:dim)=zeros(matc,dim);');
evalin('base','als_opt.closure.iclos(1:matc)=zeros(1,matc);');
evalin('base','als_opt.closure.iclos1(1:matc)=zeros(1,matc);');
evalin('base','als_opt.closure.iclos2(1:matc)=zeros(1,matc);');
evalin('base','als_opt.closure.vclos1(1:matc)=zeros(1,matc);');
evalin('base','als_opt.closure.vclos2(1:matc)=zeros(1,matc);');

assignin('base','dc',dc);
evalin('base','als_opt.closure.dc=dc;');
evalin('base','clear dc dim matr matc');


% --- Executes on button press in radio_sclos.
function radio_sclos_Callback(hObject, eventdata, handles)
% hObject    handle to radio_sclos (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radio_sclos

dc=2;

set(handles.radio_cclos,'enable','off','value',0);

set(handles.text_nclos,'enable','on');
set(handles.popup_nclos,'enable','on','value',1);

set(handles.text_1clos,'enable','off');
set(handles.edit_1clos,'enable','off','string',' ');
set(handles.text_2clos,'enable','off');
set(handles.edit_2clos,'enable','off','string',' ');

set(handles.text_1closcond,'enable','off');
set(handles.popup_1closcond,'enable','off','value',1);
set(handles.text_2closcond,'enable','off');
set(handles.popup_2closcond,'enable','off','value',1);

set(handles.check_1clos,'enable','off','value',0);
set(handles.check_2clos,'enable','off','value',0);
set(handles.text_1spclos,'enable','off');
set(handles.edit_1spclos,'enable','off','string',' ');
set(handles.text_2spclos,'enable','off');
set(handles.edit_2spclos,'enable','off','string',' ');

set(handles.check_vclos,'enable','off');
set(handles.text_vclos1,'enable','off');
set(handles.edit_vclos1,'enable','off','string',' ');
set(handles.text_vclos2,'enable','off');
set(handles.edit_vclos2,'enable','off','string',' ');

dim=evalin('base','min(size(als_opt.iniesta))');
assignin('base','dim',dim);
matc=evalin('base','als_opt.multi.matc');
assignin('base','matc',matc);
matr=evalin('base','als_opt.multi.matr');
assignin('base','matr',matr);
evalin('base','als_opt.closure.tclos1(1:matr)=zeros(1,matr);');
evalin('base','als_opt.closure.tclos2(1:matr)=zeros(1,matr);');
evalin('base','als_opt.closure.sclos1(1:matr,1:dim)=zeros(matr,dim);');
evalin('base','als_opt.closure.sclos2(1:matr,1:dim)=zeros(matr,dim);');
evalin('base','als_opt.closure.iclos(1:matr)=zeros(1,matr);');
evalin('base','als_opt.closure.iclos1(1:matr)=zeros(1,matr);');
evalin('base','als_opt.closure.iclos2(1:matr)=zeros(1,matr);');
evalin('base','als_opt.closure.vclos1(1:matr)=zeros(1,matr);');
evalin('base','als_opt.closure.vclos2(1:matr)=zeros(1,matr);');

assignin('base','dc',dc);
evalin('base','als_opt.closure.dc=dc;');
evalin('base','clear dc dim matr matc');


% --- Executes during object creation, after setting all properties.
function popup_nclos_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popup_nclos (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

llista(1)={'select...'};
llista(2)={'0'};
llista(3)={'1'};
llista(4)={'2'};
set(hObject,'string',llista)

% --- Executes on selection change in popup_nclos.
function popup_nclos_Callback(hObject, eventdata, handles)
% hObject    handle to popup_nclos (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 popup_nclos contents as cell array
%        contents{get(hObject,'Value')} returns selected item from popup_nclos

form_iclos=get(hObject,'Value')-2;

if form_iclos == 1;
    set(handles.text_1clos,'enable','on');
    set(handles.edit_1clos,'enable','on');
    set(handles.text_1closcond,'enable','on');
    set(handles.popup_1closcond,'enable','on','value',1);
    set(handles.text_1spclos,'enable','on');
    set(handles.edit_1spclos,'enable','on');
    set(handles.text_2clos,'enable','off');
    set(handles.edit_2clos,'enable','off','string',' ');
    set(handles.text_2closcond,'enable','off');
    set(handles.popup_2closcond,'enable','off','value',1);
    set(handles.text_2spclos,'enable','off');
    set(handles.edit_2spclos,'enable','off','string',' ');
   
    set(handles.check_1clos,'enable','on','value',0);
    set(handles.check_2clos,'enable','off','value',0);
    set(handles.check_vclos,'enable','on','value',0);
    set(handles.text_vclos1,'enable','off');
    set(handles.edit_vclos1,'enable','off','string',' ');
    set(handles.text_vclos2,'enable','off');
    set(handles.edit_vclos2,'enable','off','string',' ');
elseif  form_iclos==2
    warndlg('Warning: there should not be common species to the two closures','WARNING!!');
    set(handles.text_1clos,'enable','on');
    set(handles.edit_1clos,'enable','on');
    set(handles.text_1closcond,'enable','on');
    set(handles.popup_1closcond,'enable','on','value',1);
    set(handles.text_1spclos,'enable','on');
    set(handles.edit_1spclos,'enable','on');
    set(handles.text_2clos,'enable','on');
    set(handles.edit_2clos,'enable','on');
    set(handles.text_2closcond,'enable','on');
    set(handles.popup_2closcond,'enable','on','value',1);
    set(handles.text_2spclos,'enable','on');
    set(handles.edit_2spclos,'enable','on');
    set(handles.check_1clos,'enable','on','value',0);
    set(handles.check_2clos,'enable','on','value',0);
    
    set(handles.check_vclos,'enable','on','value',0);
    set(handles.text_vclos1,'enable','off');
    set(handles.edit_vclos1,'enable','off','string',' ');
    set(handles.text_vclos2,'enable','off');
    set(handles.edit_vclos2,'enable','off','string',' ');
elseif  form_iclos==0
    set(handles.text_1clos,'enable','off');
    set(handles.edit_1clos,'enable','off','string',' ');
    set(handles.text_1closcond,'enable','off');
    set(handles.popup_1closcond,'enable','off','value',1);
    set(handles.text_1spclos,'enable','off');
    set(handles.edit_1spclos,'enable','off','string',' ');
    set(handles.text_2clos,'enable','off');
    set(handles.edit_2clos,'enable','off','string',' ');
    set(handles.text_2closcond,'enable','off');
    set(handles.popup_2closcond,'enable','off','value',1);
    set(handles.text_2spclos,'enable','off');
    set(handles.edit_2spclos,'enable','off','string',' ');
    set(handles.check_1clos,'enable','off','value',0);
    set(handles.check_2clos,'enable','off','value',0);
    
    set(handles.check_vclos,'enable','off','value',0);
    set(handles.text_vclos1,'enable','off');
    set(handles.edit_vclos1,'enable','off','string',' ');
    set(handles.text_vclos2,'enable','off');
    set(handles.edit_vclos2,'enable','off','string',' ');
else
    set(handles.text_1clos,'enable','off');
    set(handles.edit_1clos,'enable','off','string',' ');
    set(handles.text_1closcond,'enable','off');
    set(handles.popup_1closcond,'enable','off','value',1);
    set(handles.text_1spclos,'enable','off');
    set(handles.edit_1spclos,'enable','off','string',' ');
    set(handles.text_2clos,'enable','off');
    set(handles.edit_2clos,'enable','off','string',' ');
    set(handles.text_2closcond,'enable','off');
    set(handles.popup_2closcond,'enable','off','value',1);
    set(handles.text_2spclos,'enable','off');
    set(handles.edit_2spclos,'enable','off','string',' ');
    set(handles.check_1clos,'enable','off','value',0);
    set(handles.check_2clos,'enable','off','value',0);
    set(handles.check_vclos,'enable','off','value',0);
    set(handles.text_vclos1,'enable','off');
    set(handles.edit_vclos1,'enable','off','string',' ');
    set(handles.text_vclos2,'enable','off');
    set(handles.edit_vclos2,'enable','off','string',' ');
end

matr=evalin('base','als_opt.multi.matr');
matc=evalin('base','als_opt.multi.matc');
curr_cmat=evalin('base','als_opt.multi.curr_cmat');
curr_smat=evalin('base','als_opt.multi.curr_smat');
iclos=evalin('base','als_opt.closure.iclos');

if evalin('base','als_opt.multi.ccons')==1 | evalin('base','als_opt.multi.scons')==1

    if evalin('base','als_opt.closure.dc')==1
        iclos(1,[1:matc])=form_iclos;
    elseif evalin('base','als_opt.closure.dc')==2
        iclos(1,[1:matr])=form_iclos;
    end

else

    if evalin('base','als_opt.closure.dc')==1
        iclos(1,curr_cmat)=form_iclos;
    elseif evalin('base','als_opt.closure.dc')==2
        iclos(1,curr_smat)=form_iclos;
    end

end

assignin('base','iclos',iclos);
evalin('base','als_opt.closure.iclos=iclos;');
evalin('base','clear iclos matc matr curr_smat curr_cmat');


% --- Executes during object creation, after setting all properties.
function edit_1clos_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit_1clos (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end



function edit_1clos_Callback(hObject, eventdata, handles)
% hObject    handle to edit_1clos (see GCBO)
% eventdata  res

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -