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

📄 clas3way.m

📁 多元曲线解析-交替最小二乘法,MCR-ALS
💻 M
📖 第 1 页 / 共 3 页
字号:
%       See ISPC and COMPUTER.

if ispc
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

llistannc={'select...'};
set(hObject,'string',llistannc)

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

numc=get(handles.popup_selnc,'Value')-1;
assignin('base','numc',numc);
evalin('base','als_opt.multi.numc=numc;');

if numc>0
    set(handles.text_nr,'enable','on');
    set(handles.edit_nr,'enable','on','string',evalin('base','als_opt.multi.nrsol(numc)')); 
else
    set(handles.text_nr,'enable','off');
    set(handles.edit_nr,'enable','off','string',' ');   
end

evalin('base','clear numc ');
set(handles.push_ok,'enable','on'); 

% --- Executes during object creation, after setting all properties.
function edit_nr_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit_nr (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_nr_Callback(hObject, eventdata, handles)
% hObject    handle to edit_nr (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_nr as text
%        str2double(get(hObject,'String')) returns contents of edit_nr as a double

nr=str2num(get(hObject,'String'));
assignin('base','nr',nr);
evalin('base','als_opt.multi.nr=nr;');
evalin('base','clear nr');
nrsol=evalin('base','als_opt.multi.nrsol');
nrsol(evalin('base','als_opt.multi.numc'))=nr;
assignin('base','nrsol',nrsol);
evalin('base','als_opt.multi.nrsol=nrsol;');
evalin('base','clear nrsol ');

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

llistannc={'select...'};
set(hObject,'string',llistannc)

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

nums=get(handles.popup_selns,'Value')-1;
assignin('base','nums',nums);
evalin('base','als_opt.multi.nums=nums;');

if nums>0
    set(handles.text_nc,'enable','on');
    set(handles.edit_nc,'enable','on','string',evalin('base','als_opt.multi.ncsol(nums)')); 
else
    set(handles.text_nc,'enable','off');
    set(handles.edit_nc,'enable','off','string',' '); 
end

evalin('base','clear nums ');
set(handles.push_ok,'enable','on'); 

% --- Executes during object creation, after setting all properties.
function edit_nc_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit_nc (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_nc_Callback(hObject, eventdata, handles)
% hObject    handle to edit_nc (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_nc as text
%        str2double(get(hObject,'String')) returns contents of edit_nc as a double

nc=str2num(get(hObject,'String'));
assignin('base','nc',nc);
evalin('base','als_opt.multi.nc=nc;');
evalin('base','clear nc');
ncsol=evalin('base','als_opt.multi.ncsol');
ncsol(evalin('base','als_opt.multi.nums'))=nc;
assignin('base','ncsol',ncsol);
evalin('base','als_opt.multi.ncsol=ncsol;');
evalin('base','clear ncsol ');

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

close;

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

if evalin('base','als_opt.multi.datamod') ==1
    nrsol=evalin('base','als_opt.multi.nrsol');
    [nr,nc]=size(evalin('base','als_opt.matdad'));
    nrfin=cumsum(evalin('base','als_opt.multi.nrsol'));
    [b,a]=size(nrfin);
    nrinic=[1 1+nrfin(1:(a-1))];
    for i=1:a;
        ncinic(1,i)=1;
        ncfin(1,i)=nc;
    end
    ncsol=nc;
    assignin('base','ncsol',ncsol);
    evalin('base','als_opt.multi.ncsol=ncsol;');
    evalin('base','clear ncsol ');    
elseif evalin('base','als_opt.multi.datamod')==2
    ncsol=evalin('base','als_opt.multi.ncsol');  
    [nr,nc]=size(evalin('base','als_opt.matdad'));
    ncfin=cumsum(evalin('base','als_opt.multi.ncsol'));
    [b,a]=size(ncfin);
    ncinic=[1 1+ncfin(1:(a-1))];
    for i=1:a;
        nrinic(1,i)=1;
        nrfin(1,i)=nr;
    end
    nrsol=nr;
    assignin('base','nrsol',nrsol);
    evalin('base','als_opt.multi.nrsol=nrsol;');
    evalin('base','clear nrsol ');        
elseif evalin('base','als_opt.multi.datamod')==3    
    nrsol=evalin('base','als_opt.multi.nrsol');
    ncsol=evalin('base','als_opt.multi.ncsol');
    [nr,nc]=size(evalin('base','als_opt.matdad'));
    nrfin=cumsum(evalin('base','als_opt.multi.nrsol'));
    [b,a]=size(nrfin);
    nrinic=[1 1+nrfin(1:(a-1))];    
    ncfin=cumsum(evalin('base','als_opt.multi.ncsol'));
    [b,a]=size(ncfin);
    ncinic=[1 1+ncfin(1:(a-1))];        
end

assignin('base','ncfin',ncfin);
evalin('base','als_opt.multi.ncfin=ncfin;');
evalin('base','clear ncfin ');
assignin('base','ncinic',ncinic);
evalin('base','als_opt.multi.ncinic=ncinic;');
evalin('base','clear ncinic ');
assignin('base','nrfin',nrfin);
evalin('base','als_opt.multi.nrfin=nrfin;');
evalin('base','clear nrfin ');
assignin('base','nrinic',nrinic);
evalin('base','als_opt.multi.nrinic=nrinic;');
evalin('base','clear nrinic ');

% isp
nesp=evalin('base','min(size(als_opt.iniesta))');
matc=evalin('base','als_opt.multi.matc');
matr=evalin('base','als_opt.multi.matr');
isp=ones(matc,nesp);
assignin('base','isp',isp);
evalin('base','als_opt.multi.isp=isp;');
evalin('base','clear isp ');

% check dimensions

if evalin('base','als_opt.multi.datamod')==1    
    dimr=sum(evalin('base','als_opt.multi.nrsol'));
    [row,col]=size(evalin('base','als_opt.matdad'));   
    if dimr ~= row
        errordlg('check dimensionsof the c submatrices');
    else
        close;
        als2004multi;
    end
    
elseif evalin('base','als_opt.multi.datamod')==2
    dimc=sum(evalin('base','als_opt.multi.ncsol'));
    [row,col]=size(evalin('base','als_opt.matdad'));   
    if dimc ~= col
        errordlg('check dimensions of the s submatrices');
    else
        close;
        als2004multi;
    end
    
elseif evalin('base','als_opt.multi.datamod')==3    
    dimr=sum(evalin('base','als_opt.multi.nrsol'));
    dimc=sum(evalin('base','als_opt.multi.ncsol'));
    [row,col]=size(evalin('base','als_opt.matdad'));   
    if dimr ~= row
        errordlg('check dimensionsof the c submatrices');
    elseif dimc ~= col
        errordlg('check dimensions of the s submatrices');
    else
        close;
        als2004multi;
    end
        
end
    

⌨️ 快捷键说明

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