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

📄 clas3way.m

📁 多元曲线解析-交替最小二乘法,MCR-ALS
💻 M
📖 第 1 页 / 共 3 页
字号:
            llistannc(j)={llistnnc};
            j=j+1;
        end;
        
        set(handles.push_ok,'enable','off'); 
        
        if matr~=1 & matr~=0 
            
            if matc*matr ~= evalin('base','als_opt.nexp') 
                errordlg('Warning: nr. of submatrices in C x nr. of submatrices in S should be equal to nexp')                
                set(handles.text_Ssub,'enable','off');
                set(handles.text_selns,'enable','off');
                set(handles.text_nc,'enable','off');
                set(handles.edit_nc,'enable','off','string',' '); 
                set(handles.popup_selns,'string',llistannc,'enable','off','value',1);                
                set(handles.text_Csub,'enable','off');
                set(handles.text_selnc,'enable','off');
                set(handles.text_nr,'enable','off');
                set(handles.edit_nr,'enable','off','string',' '); 
                set(handles.popup_selnc,'string',llistannc,'enable','off','value',1);                 
            elseif matc*matr ~= evalin('base','als_opt.nexp') & (matc==1 | matr==1);
                errordlg('Warning: nr. of submatrices in C x nr. of submatrices in S should be equal to nexp')                
                set(handles.text_Csub,'enable','off');
                set(handles.text_selnc,'enable','off');
                set(handles.text_nr,'enable','off');
                set(handles.edit_nr,'enable','off','string',' '); 
                set(handles.popup_selnc,'string',llistannc,'enable','off','value',1);                
                set(handles.text_Ssub,'enable','off');
                set(handles.text_selns,'enable','off');
                set(handles.text_nc,'enable','off');
                set(handles.edit_nc,'enable','off','string',' '); 
                set(handles.popup_selns,'string',llistannc,'enable','off','value',1);                 
            else
                set(handles.text_Ssub,'enable','on');
                set(handles.text_selns,'enable','on');
                set(handles.text_nc,'enable','off');
                set(handles.edit_nc,'enable','off','string',' '); 
                set(handles.popup_selns,'enable','on','value',1);
                set(handles.push_ok,'enable','off');                 
                set(handles.text_Csub,'enable','on');
                set(handles.text_selnc,'enable','on');
                set(handles.text_nr,'enable','off');
                set(handles.edit_nr,'enable','off','string',' '); 
                set(handles.popup_selnc,'string',llistannc,'enable','on','value',1);
                set(handles.push_ok,'enable','off');                 
            end
            
        elseif evalin('base','als_opt.multi.matr')==1 
            errordlg('Re-define your data set class')
            set(handles.text_Ssub,'enable','off');
            set(handles.text_selns,'enable','off');
            set(handles.text_nc,'enable','off');
            set(handles.edit_nc,'enable','off','string',' '); 
            set(handles.popup_selns,'string','select...','enable','off','value',1);            
            set(handles.text_Csub,'enable','off');
            set(handles.text_selnc,'enable','off');
            set(handles.text_nr,'enable','off');
            set(handles.edit_nr,'enable','off','string',' '); 
            set(handles.popup_selnc,'string',llistannc,'enable','off','value',1);            
        elseif evalin('base','als_opt.multi.matr')==0            
            set(handles.text_Csub,'enable','off');
            set(handles.text_selnc,'enable','off');
            set(handles.text_nr,'enable','off');
            set(handles.edit_nr,'enable','off','string',' '); 
            set(handles.popup_selnc,'string',llistannc,'enable','off','value',1);            
        end        
    end
end

nrsol=zeros(1,matc);
assignin('base','nrsol',nrsol);
evalin('base','als_opt.multi.nrsol=nrsol;');
evalin('base','clear nrsol ');
assignin('base','matc',matc);
evalin('base','als_opt.multi.matc=matc;');
evalin('base','clear matc ');


% --- Executes during object creation, after setting all properties.
function popup_numS_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popup_numS (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

nexp=evalin('base','als_opt.nexp');
j=2;
llistannc(1)={'select...'};
for i=1:1:nexp;
    llistnnc=[i];
    llistannc(j)={llistnnc};
    j=j+1;
end;

set(hObject,'string',llistannc)

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


matr=get(handles.popup_numS,'Value')-1;

if evalin('base','als_opt.multi.datamod')==2
    set(handles.text_Ssub,'enable','on');
    set(handles.text_selns,'enable','on');
    set(handles.text_nc,'enable','off');
    set(handles.text_Csub,'enable','off');
    set(handles.text_selnc,'enable','off');
    set(handles.text_nr,'enable','off');
    set(handles.edit_nc,'enable','off','string',' '); 
    set(handles.edit_nr,'enable','off'); 
    set(handles.popup_numC,'enable','off','value',2);
    
    matc=get(handles.popup_numC,'Value')-1;
    assignin('base','matc',matc);
    evalin('base','als_opt.multi.matc=matc;');
    evalin('base','clear matc ');
    j=2;
    llistannc(1)={'select...'};
    
    for i=1:1:matr;
        llistnnc=[i];
        llistannc(j)={llistnnc};
        j=j+1;
    end;
    
    set(handles.popup_selns,'string',llistannc,'enable','on','value',1);
    set(handles.popup_selnc,'enable','off');
    set(handles.push_ok,'enable','off');
    
    if matc*matr ~= evalin('base','als_opt.nexp')
        errordlg('Warning: nr. of submatrices in C x nr. of submatrices in S should be equal to nexp')
        set(handles.text_Ssub,'enable','off');
        set(handles.text_selns,'enable','off');
        set(handles.text_nc,'enable','off');
        set(handles.edit_nc,'enable','off','string',' '); 
        set(handles.popup_selns,'string',llistannc,'enable','off','value',1);
    end
else 
        max=evalin('base','als_opt.nexp');    
    if matr==1 |matr==max |matr==0
        errordlg('Re-define your data set class');
        set(handles.text_Csub,'enable','off');
        set(handles.text_selnc,'enable','off');
        set(handles.text_nr,'enable','off');
        set(handles.edit_nr,'enable','off','string',' '); 
        set(handles.popup_selnc,'string','select...','enable','off','value',1);        
        set(handles.text_Ssub,'enable','off');
        set(handles.text_selns,'enable','off');
        set(handles.text_nc,'enable','off');
        set(handles.edit_nc,'enable','off','string',' '); 
        set(handles.popup_selns,'string','select...','enable','off','value',1);
    else
        matc=get(handles.popup_numC,'Value')-1;
        assignin('base','matc',matc);
        evalin('base','als_opt.multi.matc=matc;');
        evalin('base','clear matc ');        
        j=2; 
        llistannc(1)={'select...'};
        for i=1:1:matr;
            llistnnc=[i];
            llistannc(j)={llistnnc};
            j=j+1;
        end;
        
        set(handles.push_ok,'enable','off');         
        if matc~=1 & matc~=0             
            if matc*matr ~= evalin('base','als_opt.nexp') 
                errordlg('Warning: nr. of submatrices in C x nr. of submatrices in S should be equal to nexp')                
                set(handles.text_Csub,'enable','off');
                set(handles.text_selnc,'enable','off');
                set(handles.text_nr,'enable','off');
                set(handles.edit_nr,'enable','off','string',' '); 
                set(handles.popup_selnc,'string',llistannc,'enable','off','value',1);                
                set(handles.text_Ssub,'enable','off');
                set(handles.text_selns,'enable','off');
                set(handles.text_nc,'enable','off');
                set(handles.edit_nc,'enable','off','string',' '); 
                set(handles.popup_selns,'string',llistannc,'enable','off','value',1); 
            elseif matc*matr ~= evalin('base','als_opt.nexp') & (matc==1 | matr==1);
                errordlg('Warning: nr. of submatrices in C x nr. of submatrices in S should be equal to nexp')                
                set(handles.text_Csub,'enable','off');
                set(handles.text_selnc,'enable','off');
                set(handles.text_nr,'enable','off');
                set(handles.edit_nr,'enable','off','string',' '); 
                set(handles.popup_selnc,'string',llistannc,'enable','off','value',1);                
                set(handles.text_Ssub,'enable','off');
                set(handles.text_selns,'enable','off');
                set(handles.text_nc,'enable','off');
                set(handles.edit_nc,'enable','off','string',' '); 
                set(handles.popup_selns,'string',llistannc,'enable','off','value',1); 
            else
                set(handles.text_Csub,'enable','on');
                set(handles.text_selnc,'enable','on');
                set(handles.text_nr,'enable','off');
                set(handles.edit_nr,'enable','off','string',' '); 
                set(handles.popup_selnc,'enable','on','value',1);
                set(handles.push_ok,'enable','off');                 
                set(handles.text_Ssub,'enable','on');
                set(handles.text_selns,'enable','on');
                set(handles.text_nc,'enable','off');
                set(handles.edit_nc,'enable','off','string',' '); 
                set(handles.popup_selns,'string',llistannc,'enable','on','value',1);
                set(handles.push_ok,'enable','off');                 
            end
            
        elseif evalin('base','als_opt.multi.matc')==1 
            errordlg('Re-define your data set class')
            set(handles.text_Csub,'enable','off');
            set(handles.text_selnc,'enable','off');
            set(handles.text_nr,'enable','off');
            set(handles.edit_nr,'enable','off','string',' '); 
            set(handles.popup_selnc,'string','select...','enable','off','value',1);            
            set(handles.text_Ssub,'enable','off');
            set(handles.text_selns,'enable','off');
            set(handles.text_nc,'enable','off');
            set(handles.edit_nc,'enable','off','string',' '); 
            set(handles.popup_selns,'string',llistannc,'enable','off','value',1);            
        elseif evalin('base','als_opt.multi.matc')==0            
            set(handles.text_Ssub,'enable','off');
            set(handles.text_selns,'enable','off');
            set(handles.text_nc,'enable','off');
            set(handles.edit_nc,'enable','off','string',' '); 
            set(handles.popup_selns,'string',llistannc,'enable','off','value',1);            
        end        
    end
end

ncsol=zeros(1,matr);
assignin('base','ncsol',ncsol);
evalin('base','als_opt.multi.ncsol=ncsol;');
evalin('base','clear ncsol ');
assignin('base','matr',matr);
evalin('base','als_opt.multi.matr=matr;');
evalin('base','clear matr ');


% --- Executes during object creation, after setting all properties.
function popup_selnc_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popup_selnc (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.

⌨️ 快捷键说明

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