📄 mfbox_getmdl.m
字号:
function varargout=mfbox_getmdl(varargin)% MFBOX_GETMDL M-file for mfbox_getmdl.fig%% See also: GUIDE, GUIDATA, GUIHANDLES%% Copyright by Peter Gruber, Fabian J. Theis and Ingo R. Keck% Signal Processing & Information Theory group% Institute of Biophysics, University of Regensburg, Germany% Homepage: http://research.fabian.theis.name% http://www-aglang.uni-regensburg.de%% This file is free software, subject to the % GNU GENERAL PUBLIC LICENSE, see gpl.txt% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name',mfilename, ... 'gui_Singleton',gui_Singleton, ... 'gui_OpeningFcn',@mfbox_getmdl_OpeningFcn, ... 'gui_OutputFcn',@mfbox_getmdl_OutputFcn, ... 'gui_LayoutFcn',[], ... 'gui_Callback',[]);if (nargin&&(ischar(varargin{1}))) gui_State.gui_Callback = str2func(varargin{1});endif (nargout) [varargout{1:nargout}] = gui_mainfcn(gui_State,varargin{:});else gui_mainfcn(gui_State,varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before mfbox_getmdl is made visible.function mfbox_getmdl_OpeningFcn(hObject,eventdata,handles,varargin)% varargin{1} contains the covariances% varargin{2} contains the number of sampleshandles.output = hObject;handles.covm = varargin{1};handles.samples = varargin{2};handles.selgamma = 32;set(handles.gamma,'Value',handles.selgamma)h = waitbar(1,'Calculating MDL...');[handles.numdim,handles.mdlest] = mfbox_mdl(handles.covm,handles.samples,handles.selgamma);close(h)guidata(hObject,handles);if (size(handles.covm,1)==size(handles.covm,2)), covm = diag(handles.covm);else covm = handles.covm;endl = 1:length(covm); covm = covm/max(covm(:)); mdlest = handles.mdlest/max(handles.mdlest(:));plot(handles.mdlplot,l,covm,'k',l,mdlest,'r',l(handles.numdim),mdlest(handles.numdim),'bo');legend(handles.mdlplot,'Covariance','MDL value','Minimum');set(handles.mdl,'String',sprintf('Estimated dimension: %d',handles.numdim));set(handles.gamma_label,'String',sprintf('gamma: %2.2f',handles.selgamma));uiwait(handles.getmdl);% --- Outputs from this function are returned to the command line.function varargout=mfbox_getmdl_OutputFcn(hObject,eventdata,handles) % varargout{1} contains data the number of dimensionsif (isstruct(handles)) close(handles.getmdl);endvarargout{1} = handles.numdim;% --- Executes on button press in close.function close_Callback(hObject,eventdata,handles)uiresume(handles.getmdl);% --- Executes on slider movement.function gamma_Callback(hObject,eventdata,handles)v = get(hObject,'Value');handles.selgamma = max(min(v,64),-64);if (abs(handles.selgamma)<2), handles.selgamma = 0; endset(hObject,'Value',handles.selgamma);%[handles.numdim,handles.mdlest] = mfbox_mdl(handles.covm,handles.samples,handles.selgamma);%if (size(handles.covm,1)==size(handles.covm,2)), covm = diag(handles.covm);%else covm = handles.covm;%end%l = 1:length(covm); covm = covm/max(covm(:)); mdlest = handles.mdlest/max(handles.mdlest(:));%plot(handles.mdlplot,l,covm,'k',l,mdlest,'r',l(handles.numdim),mdlest(handles.numdim),'bo');%legend(handles.mdlplot,'Covariance','MDL value','Minimum');%set(handles.mdl,'String',sprintf('Estimated dimension: %d',handles.numdim));set(handles.gamma_label,'String',sprintf('gamma: %2.2f',handles.selgamma));guidata(hObject,handles);% --- Executes during object creation, after setting all properties.function gamma_CreateFcn(hObject,eventdata,handles)if (isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))) set(hObject,'BackgroundColor',[.9,.9,.9]);end% --- Executes on button press in calculate.function calculate_Callback(hObject, eventdata, handles)h = waitbar(1,'Calculating MDL...');[handles.numdim,handles.mdlest] = mfbox_mdl(handles.covm,handles.samples,handles.selgamma);close(h)if (size(handles.covm,1)==size(handles.covm,2)), covm = diag(handles.covm);else covm = handles.covm;endl = 1:length(covm); covm = covm/max(covm(:)); mdlest = handles.mdlest/max(handles.mdlest(:));plot(handles.mdlplot,l,covm,'k',l,mdlest,'r',l(handles.numdim),mdlest(handles.numdim),'bo');legend(handles.mdlplot,'Covariance','MDL value','Minimum');set(handles.mdl,'String',sprintf('Estimated dimension: %d',handles.numdim));set(handles.gamma_label,'String',sprintf('gamma: %2.2f',handles.selgamma));guidata(hObject,handles);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -