Daniel@0: function som_gui(varargin) Daniel@0: Daniel@0: %SOM_GUI A GUI for initialization and training of SOM. Daniel@0: % Daniel@0: % som_gui([sD]) Daniel@0: % Daniel@0: % som_gui Daniel@0: % som_gui(sD) Daniel@0: % Daniel@0: % Input and output arguments ([]'s are optional) Daniel@0: % [sD] (struct) SOM data struct Daniel@0: % (matrix) a data matrix, size dlen x dim Daniel@0: % Daniel@0: % Actually, there are more arguments the function takes, but Daniel@0: % they are for internal action of the function only. DO NOT use Daniel@0: % them. Daniel@0: % Daniel@0: % For a more throughout description, see the online documentation. Daniel@0: % See also PREPROCESS. Daniel@0: Daniel@0: %%%%%%%%%%%% DETAILED DESCRIPTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: % Daniel@0: % IN FILES: som_gui.html,browsewin.jpg,wspace.jpg,loadgui.jpg,initgui.jpg,questdlg.jpg,paragui.jpg,mwindow.jpg,visgui.gif,reload.gif,savemap.gif,browse.gif Daniel@0: % Daniel@0: Daniel@0: % Contributed to SOM Toolbox vs2, February 2nd, 2000 by Mika Pollari Daniel@0: % Copyright (c) by Mika Pollari and SOM Toolbox Team Daniel@0: % http://www.cis.hut.fi/projects/somtoolbox/ Daniel@0: Daniel@0: % Mika Pollari 31.1.2000 vs 1.1 Daniel@0: Daniel@0: global NEWMAP NEWST MAPSAVED MAP DATA LOAD_NAME LOAD_DATA; Daniel@0: global SAVEMAP ALGORITHM HANDLE2 STOPOLINIT INIT_TYPE; Daniel@0: global STRAIN1 STRAIN2 SOTHERS; Daniel@0: Daniel@0: if nargin == 0 Daniel@0: main_gui; Daniel@0: action = 'dummy'; Daniel@0: elseif nargin == 1 Daniel@0: temp = varargin{1}; Daniel@0: if isstruct(temp), Daniel@0: DATA = temp; Daniel@0: main_gui; Daniel@0: action = 'input_data'; Daniel@0: elseif isnumeric(temp), Daniel@0: DATA = som_data_struct(temp); Daniel@0: main_gui; Daniel@0: action = 'input_data'; Daniel@0: else Daniel@0: action = temp; Daniel@0: end Daniel@0: end Daniel@0: Daniel@0: Daniel@0: switch(action) Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LOAD %%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: case 'load_data' Daniel@0: loadgui3; %%% Activates load GUI Daniel@0: case 'workspace' Daniel@0: workspace; %%% Workspace selected Daniel@0: case 'file' Daniel@0: file; %%% File Selected Daniel@0: case 'file_select' Daniel@0: file_select; Daniel@0: case 'missing' Daniel@0: Handle = findobj(gcf,'Tag','Checkbox1'); Daniel@0: set(Handle,'Value',1); Daniel@0: case 'load_ok' %%% pushed Daniel@0: load_ok; Daniel@0: case 'input_data' %%% GUI activated with data as arg1 Daniel@0: input_data; %%% eg. som_gui(data) Daniel@0: Daniel@0: case 'browse' %%% Activates Browse GUI Daniel@0: browse; %%% Browse files or workspace variables Daniel@0: Daniel@0: case 'works_ok' %%% pushed in (workspace) browse GUI Daniel@0: works_ok; Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%% Initialization %%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: case 'def_initialization' %%% Finds default initialization ... Daniel@0: def_initialization; %%% parameters Daniel@0: Daniel@0: case 'change_initialization' %%% Activates change (init) parameters GUI Daniel@0: change_initialization; Daniel@0: Daniel@0: case 'change_initialization_ok'%%% Set new init. parameters Daniel@0: change_initialization_ok; Daniel@0: Daniel@0: case 'change_initialization_cancel' Daniel@0: close(gcf); Daniel@0: return; Daniel@0: Daniel@0: case 'map_size' %%% Checks that 'map_size' is given in correct form Daniel@0: map_size; Daniel@0: Daniel@0: case 'munits' %%% Checks that 'munits' is given in correct form Daniel@0: munits; Daniel@0: Daniel@0: case 'init' %%% Initialize Map Daniel@0: init; Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%% Train %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: case 'def_values_others' Daniel@0: def_values_others; Daniel@0: Daniel@0: case 'def_values_train' Daniel@0: STRAIN1 = som_train_struct('algorithm',ALGORITHM,'phase','rough','data',DATA); Daniel@0: STRAIN2 = som_train_struct('previous',STRAIN1); Daniel@0: Daniel@0: case 'fill_fields' %%% Fill text fields in GUI Daniel@0: fill_fields; Daniel@0: Daniel@0: case 'def_train' %%% Train Map Daniel@0: def_train; Daniel@0: Daniel@0: case 'change_def' %%% Change default training parameters Daniel@0: change_def; %%% Activate GUI Daniel@0: Daniel@0: case 'fill_new_defaults' Daniel@0: fill_new_defaults; Daniel@0: Daniel@0: case 'set_batch_mask' Daniel@0: set_batch_mask; Daniel@0: Daniel@0: case 'set_new_parameters' Daniel@0: set_new_parameters; Daniel@0: Daniel@0: case 'only_finetune' %%% Train only once with finetune parameters Daniel@0: only_finetune; Daniel@0: Daniel@0: %%%%%%% Next function check correctnes of new training parameters. Daniel@0: Daniel@0: case 'check_rough_radini' Daniel@0: check_rough_radini; Daniel@0: case 'check_fine_radini' Daniel@0: check_fine_radini; Daniel@0: case 'check_rough_radfin' Daniel@0: check_rough_radfin; Daniel@0: case 'check_fine_radfin' Daniel@0: check_fine_radfin; Daniel@0: case 'check_rough_alphaini' Daniel@0: check_rough_alphaini; Daniel@0: case 'check_fine_alphaini' Daniel@0: check_fine_alphaini; Daniel@0: case 'check_rough_trainlen' Daniel@0: check_rough_trainlen; Daniel@0: case 'check_fine_trainlen' Daniel@0: check_fine_trainlen; Daniel@0: Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%% Save Map %%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: case 'savemap' %%% Save as <.cod> file Daniel@0: savemap; Daniel@0: case 'save_workspace' %%% Save in workspace Daniel@0: save_workspace; Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%% Help & Info %%%%%%%%%%%%%%%%%%%%%%% Daniel@0: case 'help' Daniel@0: web file:///share/somtoolbox/vs2/html/som_GUI.html; Daniel@0: case 'helpwin' Daniel@0: helpwin1; Daniel@0: case 'helpwin2' Daniel@0: helpwin som_gui; Daniel@0: case 'data_info' Daniel@0: data_info; %%% Info about data Daniel@0: case 'map_info' %%% Info about map Daniel@0: map_info; Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%% Other Functions %%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: case 'preprocess' Daniel@0: preprocess_gui; %%%%% Call preprocess GUI Daniel@0: case 'visualize' Daniel@0: visualize; %%%%% Call visualization GUI Daniel@0: Daniel@0: case 'clear_all' %%%%% Clear all filds Daniel@0: clear_all; Daniel@0: Daniel@0: case 'close' Daniel@0: close_fig; %%%%% Close active GUI Daniel@0: Daniel@0: end Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%% END OF SWITCH-STATEMENT %%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%% (SUB) FUNCTIONS Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% LOAD SECTION STARTS %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: function [] = workspace() Daniel@0: Handle = findobj(gcbf,'Tag','Radiobutton2'); Daniel@0: Value = get(Handle,'Value'); Daniel@0: HandleTemp = findobj(gcbf,'Tag','Radiobutton1'); Daniel@0: if Value == 1 Daniel@0: set(HandleTemp,'Value',0); Daniel@0: HandleBar = findobj(gcbf,'Tag','PopupMenu1'); Daniel@0: set(HandleBar,'Enable','off'); Daniel@0: set(HandleBar,'Visible','off'); Daniel@0: Handle3 = findobj(gcbf,'Tag','StaticText3'); Daniel@0: set(Handle3,'Visible','off'); Daniel@0: Handle3 = findobj(gcbf,'Tag','Checkbox1'); Daniel@0: set(Handle3,'Visible','off'); Daniel@0: Handle3 = findobj(gcbf,'Tag','EditText3'); Daniel@0: set(Handle3,'Visible','off'); Daniel@0: Handle = findobj(gcbf,'Tag','EditText2'); Daniel@0: set(Handle,'String',''); Daniel@0: end Daniel@0: Daniel@0: Daniel@0: Daniel@0: function [] = file() Daniel@0: Handle = findobj(gcbf,'Tag','Radiobutton1'); Daniel@0: Value = get(Handle,'Value'); Daniel@0: HandleTemp = findobj(gcbf,'Tag','Radiobutton2'); Daniel@0: if Value == 1 Daniel@0: set(HandleTemp,'Value',0); Daniel@0: HandleBar = findobj(gcbf,'Tag','PopupMenu1'); Daniel@0: set(HandleBar,'Enable','on'); Daniel@0: set(HandleBar,'Visible','on'); Daniel@0: Handle3 = findobj(gcbf,'Tag','StaticText3'); Daniel@0: set(Handle3,'Visible','on'); Daniel@0: Handle3 = findobj(gcbf,'Tag','Checkbox1'); Daniel@0: set(Handle3,'Visible','on'); Daniel@0: Handle3 = findobj(gcbf,'Tag','EditText3'); Daniel@0: set(Handle3,'Visible','on'); Daniel@0: Handle = findobj(gcbf,'Tag','EditText1'); Daniel@0: set(Handle,'String',''); Daniel@0: end Daniel@0: Daniel@0: function [] = file_select() Daniel@0: Handle = findobj(gcbf,'Tag','PopupMenu1'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = get(Handle,'Value'); Daniel@0: Handle1 = findobj(gcbf,'Tag','Checkbox1'); Daniel@0: Handle2 = findobj(gcbf,'Tag','EditText3'); Daniel@0: if strcmp(temp{val},'dat file') Daniel@0: set(Handle2,'String','x'); Daniel@0: set(Handle1,'Enable','on'); Daniel@0: set(Handle2,'Enable','on'); Daniel@0: set(Handle1,'Visible','on'); Daniel@0: set(Handle2,'Visible','on'); Daniel@0: else Daniel@0: set(Handle1,'Value',0); Daniel@0: set(Handle1,'Enable','off'); Daniel@0: set(Handle2,'Enable','off'); Daniel@0: set(Handle1,'Visible','off'); Daniel@0: set(Handle2,'Visible','off'); Daniel@0: end Daniel@0: Daniel@0: function [] = load_ok() Daniel@0: global MAP DATA LOAD_DATA LOAD_NAME; Daniel@0: Handle1 = findobj(gcbf,'Tag','EditText1'); Daniel@0: Handle2 = findobj(gcbf,'Tag','EditText2'); Daniel@0: Name1 = get(Handle1,'String'); Daniel@0: Name2 = get(Handle2,'String'); Daniel@0: if isempty(Name1) & not(isempty(Name2)) Daniel@0: Handle = findobj(gcbf,'Tag','PopupMenu1') Daniel@0: type = get(Handle,'String'); Daniel@0: val = get(Handle,'Value'); Daniel@0: type = type{val}; Daniel@0: if strcmp(type,'mat file') Daniel@0: ltemp = 'load:::'; Daniel@0: ltemp = strcat(ltemp,Name2); Daniel@0: ltemp = strrep(ltemp,':::',' '); Daniel@0: evalin('base',ltemp); Daniel@0: DATA = evalin('base','sD'); Daniel@0: LOAD_DATA = evalin('base','sD.data'); Daniel@0: LOAD_NAME = evalin('base','sD.name'); Daniel@0: LOAD_NAME = strrep(LOAD_NAME,'.','_'); Daniel@0: load_labels = evalin('base','sD.labels'); Daniel@0: load_comp_names = evalin('base','sD.comp_names'); Daniel@0: DATA = som_data_struct(LOAD_DATA); Daniel@0: DATA.name = LOAD_NAME; Daniel@0: DATA.comp_names = load_comp_names; Daniel@0: DATA.labels = load_labels; Daniel@0: else Daniel@0: Handle = findobj(gcbf,'Tag','Checkbox1'); Daniel@0: value = get(Handle,'Value'); Daniel@0: if value == 0 Daniel@0: temp = 'som_read_data('''; Daniel@0: temp = strcat(temp,Name2,''');'); Daniel@0: else Daniel@0: Handle = findobj(gcbf,'Tag','EditText3'); Daniel@0: missing = get(Handle,'String'); Daniel@0: if not(isempty(missing)) Daniel@0: temp = 'som_read_data('''; Daniel@0: temp = strcat(temp,Name2,'''',',','''',missing,''');'); Daniel@0: else Daniel@0: temp = 'som_read_data('''; Daniel@0: temp = strcat(temp,Name2,''');'); Daniel@0: end Daniel@0: end Daniel@0: evalin('base',temp); Daniel@0: DATA = evalin('base','ans'); Daniel@0: name = DATA.name; Daniel@0: temp = findstr('/',name); Daniel@0: if not(isempty(temp)) Daniel@0: name = name(temp(end)+1:end); Daniel@0: end Daniel@0: name = strrep(name,'.','_'); Daniel@0: LOAD_NAME = name; Daniel@0: DATA.name = name; Daniel@0: end Daniel@0: elseif isempty(Name2) & not(isempty(Name1)) Daniel@0: LOAD_DATA = evalin('base',Name1); Daniel@0: if not(isstruct(LOAD_DATA)) Daniel@0: DATA = som_data_struct(LOAD_DATA); Daniel@0: LOAD_NAME = Name1; Daniel@0: DATA.name = Name1; Daniel@0: else Daniel@0: DATA = LOAD_DATA; Daniel@0: name = DATA.name; Daniel@0: temp = findstr('/',name); Daniel@0: if not(isempty(temp)) Daniel@0: name = name(temp(end)+1:end); Daniel@0: end Daniel@0: name = strrep(name,'.','_'); Daniel@0: LOAD_NAME = name; Daniel@0: DATA.name = name; Daniel@0: end Daniel@0: else Daniel@0: errmsg = {'Give name of data before loading'}; Daniel@0: errordlg(errmsg,'Empty data name!'); Daniel@0: return; Daniel@0: end Daniel@0: close(gcbf); Daniel@0: if not(isempty(MAP)) Daniel@0: clear MAP; Daniel@0: global MAP; Daniel@0: str1 = 'Map: '; Daniel@0: str2 = 'Train'; Daniel@0: Handle = findobj(gcf,'Tag','StaticText3'); Daniel@0: set(Handle,'String',str1); Daniel@0: Handle = findobj(gcf,'Tag','StaticText8'); Daniel@0: set(Handle,'String',str2); Daniel@0: end Daniel@0: temp = 'Data:'; Daniel@0: temp = strcat(temp,' <',LOAD_NAME,'>'); Daniel@0: Handle = findobj(gcf,'Tag','StaticText4'); Daniel@0: set(Handle,'String',temp); Daniel@0: som_gui('def_initialization'); Daniel@0: Handle = findobj(gcf,'Tag','Pushbutton2'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcf,'Tag','Pushbutton4'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Tag','Pushbutton9'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Tag','Subuimenu2'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Tag','&Help/InfoHelp windowuimenu1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Tag','&Init&Trainuimenu1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Tag','&Init&TrainInitialize1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Tag','Subuimenu1'); Daniel@0: set(Handle,'Enable','off'); %%%%%%???????? Daniel@0: Handle = findobj(gcf,'Tag','StaticText10'); Daniel@0: set(Handle,'String','Status '); Daniel@0: Daniel@0: Daniel@0: Daniel@0: function [] = input_data() Daniel@0: global DATA; Daniel@0: name = DATA.name; Daniel@0: newname = strrep(name,'.','_'); Daniel@0: DATA.name = newname; Daniel@0: temp = strcat('Data: <',newname,'>'); Daniel@0: Handle = findobj(gcf,'Tag','StaticText4'); Daniel@0: set(Handle,'String',temp); Daniel@0: som_gui('def_initialization'); Daniel@0: Handle = findobj(gcf,'Tag','Pushbutton2'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcf,'Tag','Pushbutton4'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Tag','Pushbutton9'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Tag','Subuimenu2'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Tag','&Help/InfoHelp windowuimenu1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Tag','&Init&Trainuimenu1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Tag','&Init&TrainInitialize1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Tag','Subuimenu1'); Daniel@0: set(Handle,'Enable','off'); %%%%%%???????? Daniel@0: Handle = findobj(gcf,'Tag','StaticText10'); Daniel@0: set(Handle,'String','Status '); Daniel@0: Daniel@0: Daniel@0: function [] = browse() Daniel@0: global HANDLE2; Daniel@0: HandleWorkspace = findobj(gcbf,'Tag','Radiobutton2'); Daniel@0: HandleFile = findobj(gcbf,'Tag','Radiobutton1'); Daniel@0: WorkspaceVal = get(HandleWorkspace,'Value'); Daniel@0: FileVal = get(HandleFile,'Value'); Daniel@0: if FileVal == 1 Daniel@0: Handle = findobj(gcbf,'Tag','PopupMenu1'); Daniel@0: str = get(Handle,'String'); Daniel@0: value = get(Handle,'Value'); Daniel@0: str = str{value}; Daniel@0: if strcmp(str,'mat file') Daniel@0: filtter = '*.mat'; Daniel@0: else Daniel@0: filtter = '*.dat*'; Daniel@0: end Daniel@0: [filename pathname] = uigetfile(filtter,'Load file.'); Daniel@0: temp = strcat(pathname,filename); Daniel@0: Handle = findobj(gcbf,'Tag','EditText2'); Daniel@0: set(Handle,'String',temp); Daniel@0: elseif WorkspaceVal == 1 Daniel@0: HANDLE2 = gcf; Daniel@0: works; Daniel@0: temp = evalin('base','who'); Daniel@0: index2 = 1; Daniel@0: names = ''; Daniel@0: for index = 1:length(temp) Daniel@0: if isnumeric(evalin('base',temp{index})) Daniel@0: test = size(evalin('base',temp{index})); Daniel@0: if test(1) ~= 1 & test(2) ~= 1 Daniel@0: names{index2} = temp{index}; Daniel@0: index2 = index2 + 1; Daniel@0: end Daniel@0: end Daniel@0: end Daniel@0: for index = 1:length(temp) Daniel@0: variable = evalin('base',temp{index}); Daniel@0: if isstruct(variable) Daniel@0: fnames = fieldnames(variable); Daniel@0: if size(fnames,1) == 6 & strcmp(fnames(1),'type') & strcmp(variable.type,'som_data') Daniel@0: names{index2} = temp{index}; Daniel@0: index2 = index2 + 1; Daniel@0: end Daniel@0: end Daniel@0: end Daniel@0: Handle = findobj(gcf,'Tag','Listbox1'); Daniel@0: %%%%%% if is empty string#%%% Daniel@0: set(Handle,'String',names); Daniel@0: else Daniel@0: errmsg = 'Select browse type: Workspace or file.'; Daniel@0: errordlg(errmsg,'Browse error!'); Daniel@0: return; Daniel@0: end Daniel@0: Daniel@0: Daniel@0: function [] = works_ok() Daniel@0: global HANDLE2; Daniel@0: Handle = findobj(gcbf,'Tag','Listbox1'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = get(Handle,'Value'); Daniel@0: data = temp{val}; Daniel@0: Handle = findobj(HANDLE2,'Tag','EditText1'); Daniel@0: set(Handle,'String',data); Daniel@0: close; Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% END OF LOAD SECTION %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% START OF INITIALIZATION %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: function [] = def_initialization() Daniel@0: global DATA STOPOLINIT INIT_TYPE; Daniel@0: sTopol = som_topol_struct('data',DATA); Daniel@0: Handle = findobj(gcf,'Tag','StaticText5'); Daniel@0: temp = num2str(sTopol.msize); Daniel@0: temp = strcat('map size:',' [',temp,']'); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText6'); Daniel@0: set(Handle,'String','type: linear'); Daniel@0: Handle = findobj(gcf,'Tag','StaticText20'); Daniel@0: temp = strcat('lattice:',sTopol.lattice); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText21'); Daniel@0: temp = strcat('shape:',sTopol.shape); Daniel@0: set(Handle,'String',temp); Daniel@0: STOPOLINIT = sTopol; Daniel@0: INIT_TYPE = 'linear'; Daniel@0: Daniel@0: function [] = change_initialization() Daniel@0: global INIT_TYPE STOPOLINIT; Daniel@0: initialization2; Daniel@0: Handle = findobj(gcf,'Tag','PopupMenu1'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = loop(temp,INIT_TYPE); Daniel@0: set(Handle,'Value',val); Daniel@0: Handle = findobj(gcf,'Tag','PopupMenu2'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = loop(temp,STOPOLINIT.lattice); Daniel@0: set(Handle,'Value',val); Daniel@0: Handle = findobj(gcf,'Tag','PopupMenu3'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = loop(temp,STOPOLINIT.shape); Daniel@0: set(Handle,'Value',val); Daniel@0: Handle = findobj(gcf,'Tag','EditText1'); Daniel@0: temp = num2str(STOPOLINIT.msize); Daniel@0: msize = strcat('[',temp,']'); Daniel@0: set(Handle,'String',msize); Daniel@0: Daniel@0: function [] = change_initialization_ok() Daniel@0: Handle = findobj(gcbf,'Tag','PopupMenu1'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = get(Handle,'Value'); Daniel@0: INIT_TYPE = temp{val}; Daniel@0: Handle = findobj(gcbf,'Tag','PopupMenu2'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = get(Handle,'Value'); Daniel@0: lattice = temp{val}; Daniel@0: Handle = findobj(gcbf,'Tag','PopupMenu3'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = get(Handle,'Value'); Daniel@0: shape = temp{val}; Daniel@0: Handle = findobj(gcbf,'Tag','EditText1'); Daniel@0: temp = get(Handle,'String'); Daniel@0: msize = str2num(temp); Daniel@0: STOPOLINIT = som_set('som_topol','msize',msize,'lattice',lattice,'shape',shape); Daniel@0: close(gcf); Daniel@0: Handle = findobj(gcf,'Tag','StaticText5'); Daniel@0: temp = num2str(STOPOLINIT.msize); Daniel@0: temp = strcat('map size:',' [',temp,']'); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText6'); Daniel@0: temp = strcat('type:',INIT_TYPE); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText20'); Daniel@0: temp = strcat('lattice:',STOPOLINIT.lattice); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText21'); Daniel@0: temp = strcat('shape:',STOPOLINIT.shape); Daniel@0: set(Handle,'String',temp); Daniel@0: Daniel@0: Daniel@0: function [] = def_values_others() Daniel@0: global SOTHERS; Daniel@0: Handle = findobj(gcf,'Tag','StaticText19'); Daniel@0: temp = strcat('tracking:',SOTHERS.tracking); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText12'); Daniel@0: temp = strcat('order:',SOTHERS.oder); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText14'); Daniel@0: temp = strcat('length_type:',SOTHERS.length_type); Daniel@0: set(Handle,'String',temp); Daniel@0: Daniel@0: Daniel@0: Daniel@0: function [] = fill_fields() Daniel@0: global STRAIN1 STRAIN2 ALGORITHM Daniel@0: Daniel@0: neigh = STRAIN1.neigh; Daniel@0: mask = STRAIN1.mask; Daniel@0: rad_ini1 = STRAIN1.radius_ini; Daniel@0: rad_ini2 = STRAIN2.radius_ini; Daniel@0: rad_fin1 = STRAIN1.radius_fin; Daniel@0: rad_fin2 = STRAIN2.radius_fin; Daniel@0: trainlen1 = num2str(STRAIN1.trainlen); Daniel@0: trainlen2 = num2str(STRAIN2.trainlen); Daniel@0: alpha_ini1 = num2str(STRAIN1.alpha_ini); Daniel@0: alpha_ini2 = num2str(STRAIN2.alpha_ini); Daniel@0: if strcmp(ALGORITHM,'seq') Daniel@0: alpha_type = STRAIN1.alpha_type; %%% only in sequential Daniel@0: Handle = findobj(gcf,'Tag','StaticText28'); Daniel@0: temp = strcat('alpha type:',alpha_type); Daniel@0: set(Handle,'String',temp); Daniel@0: end Daniel@0: Handle = findobj(gcf,'Tag','StaticText11'); Daniel@0: temp = strcat('neigh: ',neigh); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText22'); Daniel@0: temp = num2str(rad_fin1); Daniel@0: temp = strcat('radius final:',temp); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText25'); Daniel@0: temp = num2str(rad_fin2); Daniel@0: temp = strcat('radius final:',temp); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText11'); Daniel@0: temp = strcat('neigh: ',neigh); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText17'); Daniel@0: temp = num2str(rad_ini1); Daniel@0: temp = strcat('radius initial:',temp); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText24'); Daniel@0: temp = num2str(rad_ini2); Daniel@0: temp = strcat('radius initial:',temp); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText16'); Daniel@0: temp = num2str(trainlen1); Daniel@0: temp = strcat('training length:',temp); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText23'); Daniel@0: temp = num2str(trainlen2); Daniel@0: temp = strcat('training length:',temp); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText26'); Daniel@0: temp = strcat('alpha initial:',alpha_ini1); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText27'); Daniel@0: temp = strcat('alpha initial:',alpha_ini2); Daniel@0: set(Handle,'String',temp); Daniel@0: Daniel@0: Daniel@0: function [] = init(); Daniel@0: global INIT_TYPE MAP NEWMAP ALGORITHM SOTHERS DATA STOPOLINIT; Daniel@0: if strcmp(INIT_TYPE,'random') Daniel@0: MAP = som_randinit(DATA,STOPOLINIT); Daniel@0: else Daniel@0: MAP = som_lininit(DATA,STOPOLINIT); Daniel@0: end Daniel@0: NEWMAP = MAP; Daniel@0: temp = 'Map:'; Daniel@0: temp = strcat(temp,' <',MAP.name,'>'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText3'); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText10'); Daniel@0: set(Handle,'String','Status '); Daniel@0: ALGORITHM = 'batch'; Daniel@0: Handle = findobj(gcbf,'Tag','Pushbutton4'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','Pushbutton6'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','Pushbutton5'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: SOTHERS.tracking = '1'; Daniel@0: SOTHERS.length_type = 'epochs'; Daniel@0: SOTHERS.oder = 'random'; Daniel@0: som_gui('def_values_topol'); Daniel@0: som_gui('def_values_train'); Daniel@0: som_gui('def_values_others'); Daniel@0: som_gui('fill_fields'); Daniel@0: Handle = findobj(gcbf,'Tag','Pushbutton4'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','Pushbutton9'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','Radiobutton1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','&Init&TrainChange initialization valuesuimenu1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','&Init&TrainTrain1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','&Help/InfoData infouimenu1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','Subuimenu2'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','&Init&Trainuimenu1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','&Init&TrainInitialize1'); Daniel@0: set(Handle,'Enable','off'); %%%%%%%%%%%?????????? Daniel@0: Handle = findobj(gcbf,'Tag','StaticText9'); Daniel@0: set(Handle,'String','training type: batch'); Daniel@0: Daniel@0: Daniel@0: Daniel@0: function [] = set_batch_mask() Daniel@0: Handle = findobj(gcbf,'Tag','Listbox2'); Daniel@0: temp = get(Handle,'String'); Daniel@0: mask = str2num(temp); Daniel@0: Handle = findobj(gcbf,'Tag','Listbox1'); Daniel@0: replace = get(Handle,'Value'); Daniel@0: Handle = findobj(gcbf,'Tag','EditText2'); Daniel@0: temp = get(Handle,'String'); Daniel@0: value = str2num(temp); Daniel@0: if not(isempty(value)) Daniel@0: mask(replace) = value; Daniel@0: Handle = findobj(gcbf,'Tag','Listbox2'); Daniel@0: temp = num2str(mask); Daniel@0: set(Handle,'String',temp); Daniel@0: end Daniel@0: Daniel@0: function [] = munits() Daniel@0: global DATA STOPOLINIT; Daniel@0: msgs = {'Correct map units is number';'Correct map units is number'}; Daniel@0: [msgs_nro, value] = check_ok('EditText2'); Daniel@0: if msgs_nro > 0 Daniel@0: errordlg({msgs{msgs_nro}},'Incorrect map units!') Daniel@0: return; Daniel@0: end Daniel@0: STOPOLINIT = som_topol_struct('munits',value,'data',DATA); Daniel@0: Handle = findobj(gcbf,'Tag','EditText1'); Daniel@0: temp = num2str(STOPOLINIT.msize); Daniel@0: msize = strcat('[',temp,']'); Daniel@0: set(Handle,'String',msize); Daniel@0: Daniel@0: function [] = map_size() Daniel@0: global STOPOLINIT; Daniel@0: msgs = {'Map size must be in form [x y]';... Daniel@0: 'Map size must be in form [x y]'}; Daniel@0: [msgs_nro, value, Handle] = msize_ok('EditText1'); Daniel@0: if msgs_nro > 0 Daniel@0: errordlg({msgs{msgs_nro}},'Incorrect map size!'); Daniel@0: temp = num2str(STOPOLINIT.msize); Daniel@0: temp = strcat('[',temp,']'); Daniel@0: set(Handle,'String',temp); Daniel@0: return; Daniel@0: end Daniel@0: STOPOLINIT.msize = value; Daniel@0: Handle = findobj(gcbf,'Tag','EditText2'); Daniel@0: set(Handle,'String',''); Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% END OF INITIALIZATION %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% START OF TRAINING %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: function [] = def_train() Daniel@0: global SOTHERS ALGORITHM MAP NEWST DATA STRAIN1 STRAIN2 MAPSAVED; Daniel@0: tlen_type = SOTHERS.length_type; Daniel@0: sample_order = SOTHERS.oder; Daniel@0: tracking = SOTHERS.tracking; Daniel@0: test = str2num(tracking); Daniel@0: Handle = findobj(gcbf,'Tag','Radiobutton1'); Daniel@0: tempval = get(Handle,'Value'); Daniel@0: if strcmp(ALGORITHM,'seq') Daniel@0: if tempval ~= 1 Daniel@0: [MAP NEWST] = som_seqtrain(MAP,DATA,'train',STRAIN1,tlen_type,sample_order); Daniel@0: end Daniel@0: if test > 1 Daniel@0: figure; Daniel@0: set(gcf,'Name',MAP.name); Daniel@0: set(gcf,'NumberTitle','off'); Daniel@0: end Daniel@0: [NEWMAP NEWST] = som_seqtrain(MAP,DATA,'train',STRAIN2,'tracking',test,tlen_type,sample_order); Daniel@0: else Daniel@0: if tempval ~= 1 Daniel@0: [MAP NEWST] = som_batchtrain(MAP,DATA,'train',STRAIN1); Daniel@0: end Daniel@0: if test > 1 Daniel@0: figure; Daniel@0: set(gcf,'Name',MAP.name); Daniel@0: set(gcf,'NumberTitle','off'); Daniel@0: end Daniel@0: [NEWMAP NEWST] = som_batchtrain(MAP,DATA,'train',STRAIN2,'tracking',test); Daniel@0: end Daniel@0: MAP = NEWMAP; Daniel@0: clear MAPSAVED; Daniel@0: Handle = findobj(gcbf,'Tag','StaticText10'); Daniel@0: set(Handle,'String','Status '); Daniel@0: Handle = findobj(gcbf,'Tag','Load/SaveSubuimenu1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','Load/SaveSave mapuimenu1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','&Load/SaveSave mapSave in workspaceuimenu1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','&ToolsSubuimenu1'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','&Init&TrainChange initialization valuesuimenu1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','&Init&TrainTrain1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Daniel@0: Daniel@0: function [] = change_def() Daniel@0: global ALGORITHM STRAIN1 DATA; Daniel@0: Daniel@0: ButtonName = questdlg('Select training type!',... Daniel@0: 'Change values.',... Daniel@0: 'Batch','Sequential','Cancel',... Daniel@0: 'Batch'); Daniel@0: if strcmp(ButtonName,'Sequential') Daniel@0: Handle = findobj(gcbf,'Visible','off'); Daniel@0: set(Handle,'Visible','on'); Daniel@0: ALGORITHM = 'seq'; Daniel@0: Handle = findobj(gcf,'Tag','StaticText9'); Daniel@0: set(Handle,'String','training type: sequential'); Daniel@0: new_para2_2; Daniel@0: Handle = findobj(gcf,'Tag','StaticText1'); Daniel@0: set(Handle,'String','Change parameters for sequential training'); Daniel@0: Handle = findobj(gcf,'Enable','off'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcf,'Visible','off'); Daniel@0: set(Handle,'Visible','on'); Daniel@0: elseif strcmp(ButtonName,'Batch') Daniel@0: ALGORITHM = 'batch'; Daniel@0: Handle = findobj(gcbf,'Tag','StaticText26'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText27'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcf,'Tag','StaticText9'); Daniel@0: set(Handle,'String','training type: batch'); Daniel@0: Handle = findobj(gcf,'Tag','StaticText12'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcf,'Tag','StaticText28'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcf,'Tag','StaticText14'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: new_para2_2; Daniel@0: Handle = findobj(gcf,'Tag','StaticText1'); Daniel@0: set(Handle,'String','Change parameters for batch training'); Daniel@0: Handle = findobj(gcf,'Tag','PopupMenu3'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcf,'Tag','PopupMenu4'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcf,'Tag','PopupMenu5'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcf,'Tag','StaticText17'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcf,'Tag','StaticText18'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcf,'Tag','StaticText19'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcf,'Tag','StaticText13'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcf,'Tag','StaticText14'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcf,'Tag','EditText6'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcf,'Tag','EditText10'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: else Daniel@0: return; Daniel@0: end Daniel@0: som_gui('def_values_train'); Daniel@0: mask = STRAIN1.mask; Daniel@0: Handle = findobj(gcf,'Tag','Listbox1'); Daniel@0: set(Handle,'String',DATA.comp_names); Daniel@0: som_gui('fill_new_defaults'); Daniel@0: Daniel@0: Daniel@0: function [] = fill_new_defaults() Daniel@0: global STRAIN1 STRAIN2 SOTHERS ALGORITHM; Daniel@0: Daniel@0: Handle = findobj(gcf,'Tag','EditText4'); Daniel@0: temp = num2str(STRAIN1.radius_ini); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','EditText8'); Daniel@0: temp = num2str(STRAIN2.radius_ini); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','EditText5'); Daniel@0: temp = num2str(STRAIN1.radius_fin); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','EditText9'); Daniel@0: temp = num2str(STRAIN2.radius_fin); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','EditText6'); Daniel@0: temp = num2str(STRAIN1.alpha_ini); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','EditText10'); Daniel@0: temp = num2str(STRAIN2.alpha_ini); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','EditText7'); Daniel@0: temp = num2str(STRAIN1.trainlen); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','EditText11'); Daniel@0: temp = num2str(STRAIN2.trainlen); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','Listbox2'); Daniel@0: temp = num2str(STRAIN1.mask'); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','PopupMenu2'); Daniel@0: string = get(Handle,'String'); Daniel@0: val = loop(string,SOTHERS.tracking); Daniel@0: set(Handle,'Value',val); Daniel@0: Handle = findobj(gcf,'Tag','PopupMenu1'); Daniel@0: string = get(Handle,'String'); Daniel@0: val = loop(string,STRAIN1.neigh); Daniel@0: set(Handle,'Value',val); Daniel@0: if strcmp(ALGORITHM,'seq') Daniel@0: Handle = findobj(gcf,'Tag','PopupMenu3'); Daniel@0: string = get(Handle,'String'); Daniel@0: val = loop(string,SOTHERS.length_type); Daniel@0: set(Handle,'Value',val); Daniel@0: Handle = findobj(gcf,'Tag','PopupMenu4'); Daniel@0: string = get(Handle,'String'); Daniel@0: val = loop(string,SOTHERS.oder); Daniel@0: set(Handle,'Value',val); Daniel@0: Handle = findobj(gcf,'Tag','PopupMenu5'); Daniel@0: string = get(Handle,'String'); Daniel@0: val = loop(string,STRAIN1.alpha_type); Daniel@0: set(Handle,'Value',val); Daniel@0: end Daniel@0: Daniel@0: Daniel@0: Daniel@0: function [] = set_new_parameters() Daniel@0: global STRAIN1 STRAIN2 ALGORITHM SOTHERS; Daniel@0: Daniel@0: Handle = findobj(gcbf,'Tag','Listbox2'); Daniel@0: temp = get(Handle,'String'); Daniel@0: mask = str2num(temp); %%%%%%%%%%%%% Do somthing Daniel@0: mask = mask'; Daniel@0: Handle = findobj(gcbf,'Tag','PopupMenu1'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = get(Handle,'Value'); Daniel@0: neigh = temp{val}; Daniel@0: Handle = findobj(gcbf,'Tag','PopupMenu2'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = get(Handle,'Value'); Daniel@0: SOTHERS.tracking = temp{val}; %%%%% finetune phase! Daniel@0: Handle = findobj(gcbf,'Tag','EditText4'); Daniel@0: temp = get(Handle,'String'); Daniel@0: rad_ini1 = str2num(temp); Daniel@0: Handle = findobj(gcbf,'Tag','EditText8'); Daniel@0: temp = get(Handle,'String'); Daniel@0: rad_ini2 = str2num(temp); Daniel@0: Handle = findobj(gcbf,'Tag','EditText5'); Daniel@0: temp = get(Handle,'String'); Daniel@0: rad_fin1 = str2num(temp); Daniel@0: Handle = findobj(gcbf,'Tag','EditText9'); Daniel@0: temp = get(Handle,'String'); Daniel@0: rad_fin2 = str2num(temp); Daniel@0: Handle = findobj(gcbf,'Tag','EditText6'); Daniel@0: temp = get(Handle,'String'); Daniel@0: alpha_ini1 = str2num(temp); Daniel@0: Handle = findobj(gcbf,'Tag','EditText10'); Daniel@0: temp = get(Handle,'String'); Daniel@0: alpha_ini2 = str2num(temp); Daniel@0: Handle = findobj(gcbf,'Tag','EditText7'); Daniel@0: temp = get(Handle,'String'); Daniel@0: train_length1 = str2num(temp); Daniel@0: Handle = findobj(gcbf,'Tag','EditText11'); Daniel@0: temp = get(Handle,'String'); Daniel@0: train_length2 = str2num(temp); Daniel@0: if strcmp(ALGORITHM,'seq') Daniel@0: Handle = findobj(gcbf,'Tag','PopupMenu3'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = get(Handle,'Value'); Daniel@0: SOTHERS.length_type = temp{val}; Daniel@0: Handle = findobj(gcbf,'Tag','PopupMenu4'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = get(Handle,'Value'); Daniel@0: SOTHERS.oder= temp{val}; Daniel@0: Handle = findobj(gcbf,'Tag','PopupMenu5'); Daniel@0: temp = get(Handle,'String'); Daniel@0: val = get(Handle,'Value'); Daniel@0: alpha_type = temp{val}; Daniel@0: else Daniel@0: alpha_type = 'inv'; Daniel@0: end Daniel@0: STRAIN1.neigh = neigh; Daniel@0: STRAIN2.neigh = neigh; Daniel@0: STRAIN1.mask = mask; Daniel@0: STRAIN2.mask = mask; Daniel@0: STRAIN1.radius_ini = rad_ini1; Daniel@0: STRAIN2.radius_ini = rad_ini2; Daniel@0: STRAIN1.radius_fin = rad_fin1; Daniel@0: STRAIN2.radius_fin = rad_fin2; Daniel@0: STRAIN1.alpha_ini = alpha_ini1; Daniel@0: STRAIN2.alpha_ini = alpha_ini2; Daniel@0: STRAIN1.alpha_type = alpha_type; Daniel@0: STRAIN2.alpha_type = alpha_type; Daniel@0: STRAIN1.trainlen = train_length1; Daniel@0: STRAIN2.trainlen = train_length2; Daniel@0: close(gcbf); Daniel@0: som_gui('fill_fields'); Daniel@0: som_gui('def_values_others'); Daniel@0: Daniel@0: function [] = only_finetune() Daniel@0: Daniel@0: Handle = findobj(gcbf,'Tag','Radiobutton1'); Daniel@0: test = get(Handle,'Value'); Daniel@0: if test == 1 Daniel@0: Handle = findobj(gcbf,'Tag','StaticText16'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText17'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText22'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText26'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: else Daniel@0: Handle = findobj(gcbf,'Tag','StaticText16'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText17'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText22'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText26'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: end Daniel@0: Daniel@0: Daniel@0: function [] = check_rough_radini() Daniel@0: global STRAIN1; Daniel@0: msgs = {'Initial radius must be number!';... Daniel@0: 'Initial radius must be single valued number!'}; Daniel@0: [msgs_nro, value, Handle] = check_ok('EditText4'); Daniel@0: if msgs_nro > 0 Daniel@0: errordlg({msgs{msgs_nro}},'Incorrect initial radius!') Daniel@0: temp = num2str(STRAIN1.radius_ini); Daniel@0: set(Handle,'String',temp); Daniel@0: return; Daniel@0: end Daniel@0: Daniel@0: Daniel@0: function [] = check_fine_radini() Daniel@0: global STRAIN2; Daniel@0: msgs = {'Initial radius must be number!';... Daniel@0: 'Initial radius must be single valued number!'}; Daniel@0: [msgs_nro, value, Handle] = check_ok('EditText8'); Daniel@0: if msgs_nro > 0 Daniel@0: errordlg({msgs{msgs_nro}},'Incorrect initial radius!') Daniel@0: temp = num2str(STRAIN2.radius_ini); Daniel@0: set(Handle,'String',temp); Daniel@0: return; Daniel@0: end Daniel@0: Daniel@0: function [] = check_rough_radfin() Daniel@0: global STRAIN1; Daniel@0: msgs = {'Final radius must be number!';... Daniel@0: 'Final radius must be single valued number!'}; Daniel@0: [msgs_nro, value, Handle] = check_ok('EditText5'); Daniel@0: if msgs_nro > 0 Daniel@0: errordlg({msgs{msgs_nro}},'Incorrect final radius!') Daniel@0: temp = num2str(STRAIN1.radius_fin); Daniel@0: set(Handle,'String',temp); Daniel@0: return; Daniel@0: end Daniel@0: Daniel@0: function [] = check_fine_radfin() Daniel@0: global STRAIN2; Daniel@0: msgs = {'Final radius must be number!';... Daniel@0: 'Final radius must be single valued number!'}; Daniel@0: [msgs_nro, value, Handle] = check_ok('EditText9'); Daniel@0: if msgs_nro > 0 Daniel@0: errordlg({msgs{msgs_nro}},'Incorrect final radius!') Daniel@0: temp = num2str(STRAIN2.radius_fin); Daniel@0: set(Handle,'String',temp); Daniel@0: return; Daniel@0: end Daniel@0: Daniel@0: function [] = check_rough_alphaini() Daniel@0: global STRAIN1; Daniel@0: msgs = {'Alpha initial must be number!';... Daniel@0: 'Alpha initial must be single valued number!'}; Daniel@0: [msgs_nro, value, Handle] = check_ok('EditText6'); Daniel@0: if msgs_nro > 0 Daniel@0: errordlg({msgs{msgs_nro}},'Incorrect initial alpha!') Daniel@0: temp = num2str(STRAIN1.alpha_ini); Daniel@0: set(Handle,'String',temp); Daniel@0: return; Daniel@0: end Daniel@0: Daniel@0: function [] = check_fine_alphaini() Daniel@0: global STRAIN2; Daniel@0: msgs = {'Alpha initial must be number!';... Daniel@0: 'Alpha initial must be single valued number!'}; Daniel@0: [msgs_nro, value, Handle] = check_ok('EditText10'); Daniel@0: if msgs_nro > 0 Daniel@0: errordlg({msgs{msgs_nro}},'Incorrect initial alpha!') Daniel@0: temp = num2str(STRAIN2.alpha_ini); Daniel@0: set(Handle,'String',temp); Daniel@0: return; Daniel@0: end Daniel@0: Daniel@0: function [] = check_rough_trainlen() Daniel@0: global STRAIN1; Daniel@0: msgs = {'Training length must be number!';... Daniel@0: 'Training length must be single valued number!'}; Daniel@0: [msgs_nro, value, Handle] = check_ok('EditText7'); Daniel@0: if msgs_nro > 0 Daniel@0: errordlg({msgs{msgs_nro}},'Incorrect training length!') Daniel@0: temp = num2str(STRAIN1.trainlen); Daniel@0: set(Handle,'String',temp); Daniel@0: return; Daniel@0: end Daniel@0: Daniel@0: function [] = check_fine_trainlen() Daniel@0: global STRAIN2; Daniel@0: Daniel@0: msgs = {'Training length must be number!';... Daniel@0: 'Training length must be single valued number!'}; Daniel@0: [msgs_nro, value, Handle] = check_ok('EditText11'); Daniel@0: if msgs_nro > 0 Daniel@0: errordlg({msgs{msgs_nro}},'Incorrect training length!') Daniel@0: temp = num2str(STRAIN2.trainlen); Daniel@0: set(Handle,'String',temp); Daniel@0: return; Daniel@0: end Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% END OF TRAINING %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% START OF SAVING %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: function [] = savemap() Daniel@0: global MAP MAPSAVED; Daniel@0: if isempty(MAP) Daniel@0: str = {'There is no map to be saved! Train map before saving.'}; Daniel@0: helpdlg(str,'Empty map!'); Daniel@0: return; Daniel@0: end Daniel@0: [FileName Path] = uiputfile('*.cod','Save file!'); Daniel@0: if FileName ~= 0 Daniel@0: temp = strcat(Path,FileName); Daniel@0: som_write_cod(MAP,temp); Daniel@0: MAPSAVED = 'SAVED'; Daniel@0: end Daniel@0: Handle = findobj(gcf,'Tag','StaticText10'); Daniel@0: set(Handle,'String','Status '); Daniel@0: Daniel@0: function [] = save_workspace() Daniel@0: global MAP MAPSAVED; Daniel@0: if isempty(MAP) Daniel@0: str = {'There is no map to be saved! Train map before saving.'}; Daniel@0: helpdlg(str,'Empty map!'); Daniel@0: return; Daniel@0: else Daniel@0: prompt = {'Save map as?'}; Daniel@0: title = 'Save map!'; Daniel@0: lineNo = 1; Daniel@0: answer = inputdlg(prompt,title,lineNo); Daniel@0: if isempty(answer) Daniel@0: return; Daniel@0: end Daniel@0: if not(isempty(answer{1})) Daniel@0: ws_variable = evalin('base','who'); Daniel@0: max_length = 0; Daniel@0: for index = 1:size(ws_variable,1) Daniel@0: if max_length < size(ws_variable{index},2) Daniel@0: max_length = size(ws_variable{index},2); Daniel@0: end Daniel@0: end Daniel@0: length = max_length + 1; Daniel@0: tempfoo(1:1:length) = 'A'; Daniel@0: assignin('base',tempfoo,answer{1}); Daniel@0: str = ['exist(' tempfoo ')']; Daniel@0: temp = evalin('base',str); %%%%%%%%%%@@@@@@@@@ Daniel@0: evalin('base',['clear ' tempfoo ]) Daniel@0: if temp == 0 Daniel@0: assignin('base',answer{1},MAP); Daniel@0: MAPSAVED = 'SAVED'; Daniel@0: elseif temp ~= 0 Daniel@0: Questmsg = strcat('Variable',' ''',answer{1},'''',... Daniel@0: ' exist. Overwrite?'); Daniel@0: ButtonName = questdlg(Questmsg); Daniel@0: switch(ButtonName) Daniel@0: case 'Yes' Daniel@0: assignin('base',answer{1},MAP); Daniel@0: MAPSAVED = 'SAVED'; Daniel@0: case 'No' Daniel@0: som_gui('save_workspace'); Daniel@0: end Daniel@0: end Daniel@0: else Daniel@0: helpmsg = {'There cannot be any empty field in ''save'''}; Daniel@0: helpdlg(helpmsg,'Help Save!'); Daniel@0: som_gui('save'); Daniel@0: end Daniel@0: end Daniel@0: Handle = findobj(gcf,'Tag','StaticText10'); Daniel@0: set(Handle,'String','Status '); Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% END OF SAVING %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% START OF HELP & INFO %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: %HEREXX Daniel@0: Daniel@0: function [] = data_info() Daniel@0: global DATA; Daniel@0: if isempty(DATA) Daniel@0: helpmsg = 'Load data first!'; Daniel@0: helpdlg(helpmsg,'Empty data!'); Daniel@0: return; Daniel@0: end Daniel@0: file_name = tempname; Daniel@0: file_name = strcat(file_name,'.m'); Daniel@0: fid = fopen(file_name,'w'); Daniel@0: fprintf(fid,'%% %+35s\n','DATA INFO'); Daniel@0: fprintf(fid,'%%\n'); Daniel@0: print_info(DATA,2,fid); Daniel@0: directory = tempdir; Daniel@0: addpath (directory); Daniel@0: helpwin (file_name); Daniel@0: fclose(fid); Daniel@0: delete(file_name); Daniel@0: rmpath (directory); Daniel@0: Daniel@0: Daniel@0: function [] = map_info() Daniel@0: global MAP; Daniel@0: if isempty(MAP) Daniel@0: helpmsg = 'There is no map!'; Daniel@0: helpdlg(helpmsg,'Empty map!'); Daniel@0: return; Daniel@0: end Daniel@0: file_name = tempname; Daniel@0: file_name = strcat(file_name,'.m'); Daniel@0: fid = fopen(file_name,'w'); Daniel@0: fprintf(fid,'%% %+35s\n','MAP INFO'); Daniel@0: fprintf(fid,'%%\n'); Daniel@0: print_info(MAP,2,fid); Daniel@0: directory = tempdir; Daniel@0: addpath (directory); Daniel@0: helpwin (file_name); Daniel@0: fclose(fid); Daniel@0: delete(file_name); Daniel@0: rmpath (directory); Daniel@0: Daniel@0: Daniel@0: function [] = helpwin1() Daniel@0: file1 = tempname; Daniel@0: file1 = strcat(file1,'.m'); Daniel@0: directory = tempdir; Daniel@0: html2tex('file:///share/somtoolbox/vs2/html/som_GUI.html',file1); Daniel@0: addpath (directory); Daniel@0: helpwin (file1); Daniel@0: rmpath (directory); Daniel@0: delete (file1); Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% END OF HELP & INFO %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% START OF OTHER FUNC %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: Daniel@0: function [msgs_nro, value, Handle] = check_ok(Tag) Daniel@0: Handle = findobj(gcbf,'Tag',Tag); Daniel@0: temp = get(Handle,'String'); Daniel@0: value = str2num(temp); Daniel@0: if isempty(value) Daniel@0: msgs_nro = 1; Daniel@0: return; Daniel@0: end Daniel@0: [test1 test2] = size(value); Daniel@0: if test1 ~= 1 | test2 ~= 1 Daniel@0: msgs_nro = 2; Daniel@0: return; Daniel@0: end Daniel@0: msgs_nro = 0; Daniel@0: Daniel@0: Daniel@0: function [msgs_nro, value, Handle] = msize_ok(Tag) Daniel@0: Handle = findobj(gcbf,'Tag',Tag); Daniel@0: temp = get(Handle,'String'); Daniel@0: value = str2num(temp); Daniel@0: if isempty(value) Daniel@0: msgs_nro = 1; Daniel@0: return; Daniel@0: end Daniel@0: [test1 test2] = size(value); Daniel@0: if test1 ~= 1 | test2 ~= 2 Daniel@0: msgs_nro = 2; Daniel@0: return; Daniel@0: end Daniel@0: msgs_nro = 0; Daniel@0: Daniel@0: Daniel@0: %%% Changed 1.2.2000 Daniel@0: Daniel@0: function [] = visualize() Daniel@0: global MAP; Daniel@0: if isempty(MAP) Daniel@0: helpmsg = {'Train map before tryinig to visualize it!'}; Daniel@0: helpdlg(helpmsg,'Empty Map!'); Daniel@0: return; Daniel@0: end Daniel@0: Daniel@0: dim = size(MAP.codebook,2); Daniel@0: odim = 2; Daniel@0: [P,V] = pcaproj(MAP.codebook,odim); Daniel@0: ccode = som_colorcode(MAP, 'rgb1'); Daniel@0: Daniel@0: figure; Daniel@0: som_show(MAP,'umat','all','comp',1:dim,'norm','d'); Daniel@0: figure; Daniel@0: subplot(1,2,1) Daniel@0: som_grid(MAP,'Coord',P,'MarkerColor',ccode,'Markersize',5, ... Daniel@0: 'Linewidth',1,'Linecolor','k'); Daniel@0: xlabel('PC1'), ylabel('PC2') Daniel@0: title('PCA-projection (on the left), color coding (on the right)') Daniel@0: axis tight, axis equal Daniel@0: subplot(1,2,2) Daniel@0: som_cplane(MAP.topol.lattice,MAP.topol.msize,ccode); Daniel@0: Daniel@0: %msgbox('Save map in workspace. Load it from there.'); Daniel@0: %som_gui('save_workspace'); Daniel@0: %som_comp_vis; Daniel@0: Daniel@0: %%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: function [] = clear_all() Daniel@0: Daniel@0: Handle = findobj(gcbf,'Enable','off'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','Radiobutton1'); Daniel@0: set(Handle,'Value',0); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText10'); Daniel@0: set(Handle,'String','Status '); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText3'); Daniel@0: set(Handle,'String','Map: '); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText4'); Daniel@0: set(Handle,'String','Data: '); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText20'); Daniel@0: set(Handle,'String','lattice:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText11'); Daniel@0: set(Handle,'String','neigh:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText16'); Daniel@0: set(Handle,'String','training length:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText23'); Daniel@0: set(Handle,'String','training length:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText17'); Daniel@0: set(Handle,'String','radius initial:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText24'); Daniel@0: set(Handle,'String','radius initial:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText5'); Daniel@0: set(Handle,'String','map size:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText21'); Daniel@0: set(Handle,'String','shape:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText12'); Daniel@0: set(Handle,'String','order:'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText14'); Daniel@0: set(Handle,'String','length type:'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText22'); Daniel@0: set(Handle,'String','radius final:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText25'); Daniel@0: set(Handle,'String','radius final:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText19'); Daniel@0: set(Handle,'String','tracking:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText7'); Daniel@0: set(Handle,'String','Initialization'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText28'); Daniel@0: set(Handle,'String','alpha type:'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText26'); Daniel@0: set(Handle,'String','alpha initial:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText27'); Daniel@0: set(Handle,'String','alpha initial:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText6'); Daniel@0: set(Handle,'String','type:'); Daniel@0: Handle = findobj(gcbf,'Tag','StaticText9'); Daniel@0: set(Handle,'String','training type:'); Daniel@0: Handle = findobj(gcbf,'Tag','Pushbutton9'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','Pushbutton6'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','Pushbutton4'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','Pushbutton5'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','Pushbutton2'); Daniel@0: set(Handle,'Enable','on'); Daniel@0: Handle = findobj(gcbf,'Tag','Radiobutton1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','Load/SaveSave mapuimenu1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','&Load/SaveSave mapSave in workspaceuimenu1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','Subuimenu2'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','&ToolsSubuimenu1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','&Help/InfoHelp windowuimenu1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','&Help/InfoData infouimenu1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','&Init&Trainuimenu1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','&Init&TrainInitialize1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','&Init&TrainChange initialization valuesuimenu1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','&Init&TrainTrain1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'Tag','Load/SaveSubuimenu1'); Daniel@0: set(Handle,'Enable','off'); Daniel@0: Handle = findobj(gcbf,'String','alpha initial:'); Daniel@0: set(Handle,'Visible','off'); Daniel@0: clear; Daniel@0: clear global; Daniel@0: Daniel@0: Daniel@0: function [] = close_fig() Daniel@0: global MAPSAVED NEWMAP; Daniel@0: if isempty(MAPSAVED) Daniel@0: if not(isempty(NEWMAP)) Daniel@0: quest = 'Save map before closing?'; Daniel@0: ButtonName = questdlg(quest); Daniel@0: switch ButtonName Daniel@0: case 'Yes' Daniel@0: som_gui('savemap'); Daniel@0: som_gui('clear'); Daniel@0: clear global; Daniel@0: close(gcbf); Daniel@0: case 'No' Daniel@0: som_gui('clear'); Daniel@0: clear global; Daniel@0: close(gcbf); Daniel@0: case 'Cancel' Daniel@0: end Daniel@0: else Daniel@0: som_gui('clear'); Daniel@0: clear global; Daniel@0: close(gcbf); Daniel@0: end Daniel@0: else Daniel@0: som_gui('clear'); Daniel@0: clear global; Daniel@0: close(gcbf); Daniel@0: end Daniel@0: Daniel@0: Daniel@0: function [] = preprocess_gui() Daniel@0: global DATA; Daniel@0: if isempty(DATA) Daniel@0: helpmsg = {'Load data before tryinig to preprocess!'}; Daniel@0: helpdlg(helpmsg,'Empty Data!'); Daniel@0: return; Daniel@0: end Daniel@0: preprocess(DATA); Daniel@0: waitfor(gcf); Daniel@0: prompt = {'Name of preprocessed data in workspace?'}; Daniel@0: tittle = 'Reload preprocessed data!'; Daniel@0: lineNo = 1; Daniel@0: def = {DATA.name}; Daniel@0: answer = inputdlg(prompt,tittle,lineNo,def); Daniel@0: if isempty(answer) Daniel@0: return; Daniel@0: end Daniel@0: data = answer{1}; Daniel@0: new_name = retname; Daniel@0: assignin('base',new_name,data); Daniel@0: str = ['exist(' new_name ')']; Daniel@0: temp = evalin('base',str); Daniel@0: if temp ~= 1 Daniel@0: temp = strcat('Variable ''',data,''' doesn''t exist in workspace.',... Daniel@0: 'Old Data which is not preprocessed will be used.'); Daniel@0: errordlg(temp,'Unknown variable!'); Daniel@0: return; Daniel@0: end Daniel@0: evalin('base',['clear ' new_name ]) Daniel@0: Handle = findobj(gcf,'Tag','StaticText4'); Daniel@0: temp = strcat('Data: <',data,'>'); Daniel@0: set(Handle,'String',temp); Daniel@0: Handle = findobj(gcf,'Tag','StaticText10'); Daniel@0: set(Handle,'String','Status '); Daniel@0: temp = evalin('base',data); Daniel@0: DATA.data = temp; Daniel@0: som_gui('def_initialization'); Daniel@0: Daniel@0: Daniel@0: function [val] = loop(cell_data, search_data) Daniel@0: for val = 1: length(cell_data) Daniel@0: if strcmp(cell_data{val},search_data) Daniel@0: break; Daniel@0: end Daniel@0: end Daniel@0: if not(strcmp(cell_data{val},search_data)) Daniel@0: val = -1; Daniel@0: end Daniel@0: Daniel@0: Daniel@0: function [] = comp_names(names,fid) Daniel@0: last = size(names); Daniel@0: for index=1:last Daniel@0: fprintf(fid,'%% %s\n',names{index}) Daniel@0: end Daniel@0: Daniel@0: function [] = fill_field(names,mask,fid) Daniel@0: last = size(mask); Daniel@0: for index=1:last Daniel@0: num = num2str(mask(index)) Daniel@0: fprintf(fid,'%% %-15s %-2s\n',names{index},num) Daniel@0: end Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% END OF OTHER FUNC %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: function fig = main_gui() Daniel@0: Daniel@0: v = version; Daniel@0: ver_53_or_newer = (str2num(v(1:3)) >= 5.3); Daniel@0: Daniel@0: h0 = figure('Units','normalized', ... Daniel@0: 'Color',[0.85 0.85 0.85], ... Daniel@0: 'Name','SOM Toolbox -- Initialization & Training', ... Daniel@0: 'NumberTitle','off', ... Daniel@0: 'PaperPosition',[18 180 576 432], ... Daniel@0: 'PaperUnits','points', ... Daniel@0: 'Position',[0.3296875 0.28125 0.3828125 0.576171875], ... Daniel@0: 'Tag','Fig1'); Daniel@0: if ver_53_or_newer, set(h0,'ToolBar','none'); end Daniel@0: Daniel@0: h1 = uimenu('Parent',h0, ... Daniel@0: 'Label','&Load/Save', ... Daniel@0: 'Tag','uimenu1'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''load_data'');',... Daniel@0: 'Label','Load Data', ... Daniel@0: 'Tag','Subuimenu1'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Label','Save map', ... Daniel@0: 'Enable','off',... Daniel@0: 'Tag','Load/SaveSubuimenu1'); Daniel@0: h3 = uimenu('Parent',h2, ... Daniel@0: 'Callback','som_gui(''save_workspace'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Label','Save in workspace', ... Daniel@0: 'Tag','Load/SaveSave mapuimenu1'); Daniel@0: h3 = uimenu('Parent',h2, ... Daniel@0: 'Callback','som_gui(''savemap'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Label','Write cod-file', ... Daniel@0: 'Tag','&Load/SaveSave mapSave in workspaceuimenu1'); Daniel@0: h1 = uimenu('Parent',h0, ... Daniel@0: 'Label','&Utilities', ... Daniel@0: 'Tag','uimenu2'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''preprocess'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Label','Preprocess Data', ... Daniel@0: 'Tag','Subuimenu2'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''visualize'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Label','Visualize Map', ... Daniel@0: 'Tag','&ToolsSubuimenu1'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''clear_all'');', ... Daniel@0: 'Label','Clear all', ... Daniel@0: 'Tag','&ToolsSubuimenu2'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''close'');', ... Daniel@0: 'Label','Close Figure', ... Daniel@0: 'Tag','&ToolsClear alluimenu1'); Daniel@0: h1 = uimenu('Parent',h0, ... Daniel@0: 'Label','&Info', ... Daniel@0: 'Tag','&ToolsClose Figureuimenu1'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''help'');', ... Daniel@0: 'Label','WWW Help', ... Daniel@0: 'Tag','Helpuimenu1'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''helpwin'');', ... Daniel@0: 'Label','Help window', ... Daniel@0: 'Tag','Helpuimenu2'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''helpwin2'');', ... Daniel@0: 'Label','About GUI', ... Daniel@0: 'Tag','&Help/InfoHelp windowuimenu2'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''data_info'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Label','Data info', ... Daniel@0: 'Tag','&Help/InfoHelp windowuimenu1'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''map_info'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Label','Map info', ... Daniel@0: 'Tag','&Help/InfoData infouimenu1'); Daniel@0: h1 = uimenu('Parent',h0, ... Daniel@0: 'Label','&Init/Train', ... Daniel@0: 'Tag','&Init/Train1'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''change_initialization'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Label','Change initialization values', ... Daniel@0: 'Tag','&Init&Trainuimenu1'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''init'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Label','Initialize', ... Daniel@0: 'Tag','&Init&TrainInitialize1'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''change_def'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Label','Change training values', ... Daniel@0: 'Tag','&Init&TrainChange initialization valuesuimenu1'); Daniel@0: h2 = uimenu('Parent',h1, ... Daniel@0: 'Callback','som_gui(''def_train'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Label','Train', ... Daniel@0: 'Tag','&Init&TrainTrain1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.04081632653061224 0.01129943502824859 0.7619047619047619 0.9717514124293786], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.06802721088435373 0.7909604519774012 0.7074829931972788 0.1807909604519774], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09523809523809523 0.8527570621468927 0.6530612244897959 0.03389830508474576], ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'String','Map ', ... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText3'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09523809523809523 0.8075593220338984 0.6530612244897959 0.03389830508474576], ... Daniel@0: 'String','Data ', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText4'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.06802721088435373 0.5988700564971752 0.7074829931972788 0.1694915254237288], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame3'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.1041 0.7356 0.6286 0.0271], ... Daniel@0: 'String','Initialization', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'FontWeight','bold', ... Daniel@0: 'Tag','StaticText7'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.4489795918367346 0.7005649717514124 0.2993197278911565 0.03389830508474576], ... Daniel@0: 'String','map size:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText5'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09523809523809523 0.6553672316384182 0.2993197278911565 0.03389830508474576], ... Daniel@0: 'String','lattice:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText20'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09523809523809523 0.7000000000000001 0.2993197278911565 0.03389830508474576], ... Daniel@0: 'String','type:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText6'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.4489795918367346 0.6553672316384182 0.2993197278911565 0.03389830508474576], ... Daniel@0: 'String','shape:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText21'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.3129251700680272 0.6101694915254238 0.217687074829932 0.03389830508474576], ... Daniel@0: 'String','Change values', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Callback','som_gui(''change_initialization'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Tag','Pushbutton9'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.06802721088435373 0.02259887005649718 0.7074829931972788 0.5536723163841808], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame4'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.1041 0.5316 0.6429 0.0339], ... Daniel@0: 'String','Training', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'FontWeight','bold', ... Daniel@0: 'Tag','StaticText8'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09523809523809523 0.4971751412429379 0.6530612244897959 0.03389830508474576], ... Daniel@0: 'String','training type', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText9'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.4489795918367346 0.4519774011299435 0.2993197278911565 0.03389830508474576], ... Daniel@0: 'String','tracking:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText19'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09523809523809523 0.4519774011299435 0.2993197278911565 0.03389830508474576], ... Daniel@0: 'String','neigh:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText11'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09523809523809523 0.36519774011299435 0.2993197278911565 0.03389830508474576], ... Daniel@0: 'String','alpha type:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Visible','off',... Daniel@0: 'Tag','StaticText28'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'Position',[0.09523809523809523 0.4067796610169492 0.2993197278911565 0.03389830508474576], ... Daniel@0: 'String','length type:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Visible','off',... Daniel@0: 'Tag','StaticText14'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.4489795918367346 0.4067796610169492 0.2993197278911565 0.03389830508474576], ... Daniel@0: 'String','order:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Visible','off',... Daniel@0: 'Tag','StaticText12'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09523809523809523 0.07909604519774012 0.2993197278911565 0.2711864406779661], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame5'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.4353741496598639 0.07909604519774012 0.2993197278911565 0.2711864406779661], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame6'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.108843537414966 0.3050847457627119 0.2721088435374149 0.03389830508474576], ... Daniel@0: 'String','Rough', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText13'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.4489795918367346 0.3050847457627119 0.2721088435374149 0.03389830508474576], ... Daniel@0: 'String','Finetune', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText15'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.108843537414966 0.1807909604519774 0.2721088435374149 0.03389830508474576], ... Daniel@0: 'String','training length:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText16'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.108843537414966 0.2694915254237288 0.2714285714285714 0.03389830508474576], ... Daniel@0: 'String','radius initial:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText17'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.1088 0.2260 0.2721 0.0339], ... Daniel@0: 'String','radius final:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText22'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.108843537414966 0.13694915254237288 0.2714285714285714 0.03389830508474576], ... Daniel@0: 'String','alpha initial:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'Style','text', ... Daniel@0: 'Visible','off',... Daniel@0: 'Tag','StaticText26'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.4489795918367346 0.1807909604519774 0.2721088435374149 0.03389830508474576], ... Daniel@0: 'String','training length:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText23'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.4489795918367346 0.2711864406779661 0.2721088435374149 0.03389830508474576], ... Daniel@0: 'String','radius initial:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText24'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.4490 0.2260 0.2721 0.0339], ... Daniel@0: 'String','radius final:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText25'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.4489795918367346 0.13694915254237288 0.2721088435374149 0.03389830508474576], ... Daniel@0: 'String','alpha initial:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'Style','text', ... Daniel@0: 'Visible','off',... Daniel@0: 'Tag','StaticText27'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.3129251700680272 0.03389830508474576 0.217687074829932 0.03389830508474576], ... Daniel@0: 'String','Change values', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Callback','som_gui(''change_def'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Tag','Pushbutton6'); Daniel@0: if ver_53_or_newer, set(h1,'TooltipString','Change default values in training.'); end Daniel@0: Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.8163265306122448 0.8152542372881356 0.163265306122449 0.05593220338983051], ... Daniel@0: 'String','LOAD', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Callback','som_gui(''load_data'');', ... Daniel@0: 'Tag','Pushbutton2'); Daniel@0: if ver_53_or_newer, set(h1,'TooltipString','Load data file.'); end Daniel@0: Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.8163265306122448 0.6457627118644068 0.163265306122449 0.05593220338983051], ... Daniel@0: 'String','INITIALIZE', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Callback','som_gui(''init'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Tag','Pushbutton4'); Daniel@0: if ver_53_or_newer, set(h1,'TooltipString','Initialize map.'); end Daniel@0: Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.8163265306122448 0.384180790960452 0.163265306122449 0.05649717514124294], ... Daniel@0: 'String','TRAIN', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Callback','som_gui(''def_train'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Tag','Pushbutton5'); Daniel@0: if ver_53_or_newer, set(h1,'TooltipString','Train map whit default values.'); end Daniel@0: Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.8163265306122448 0.06779661016949153 0.163265306122449 0.05649717514124294], ... Daniel@0: 'Callback','som_gui(''close'');', ... Daniel@0: 'String','CLOSE', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','Pushbutton8'); Daniel@0: if ver_53_or_newer, set(h1,'TooltipString','Close figure.'); end Daniel@0: Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.9 0.9 0.9], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09387755102040815 0.897954802259887 0.6530612244897959 0.03389830508474576], ... Daniel@0: 'String','Status ', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText10'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.108843537414966 0.0903954802259887 0.2721088435374149 0.03389830508474576], ... Daniel@0: 'String','Only finetune', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Callback','som_gui(''only_finetune'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'Style','radiobutton', ... Daniel@0: 'Tag','Radiobutton1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09523809523809523 0.9418531073446328 0.6530612244897959 0.0259887005649718], ... Daniel@0: 'String','Information', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'FontWeight','bold', ... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText18'); Daniel@0: if nargout > 0, fig = h0; end Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: function fig = loadgui3() Daniel@0: Daniel@0: temp = {'dat file';'mat file'}; Daniel@0: Daniel@0: h0 = figure('Units','normalized', ... Daniel@0: 'Color',[0.8 0.8 0.8], ... Daniel@0: 'Name','Load data!', ... Daniel@0: 'NumberTitle','off', ... Daniel@0: 'PaperType','a4letter', ... Daniel@0: 'Position',[0.3828125 0.5 0.3421875 0.189453125], ... Daniel@0: 'Tag','Fig1'); Daniel@0: Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.02853881278538813 0.06443298969072164 0.7705479452054794 0.8698453608247422], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.04337899543378995 0.547680412371134 0.7420091324200913 0.354381443298969], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.04280821917808219 0.09664948453608246 0.7420091324200913 0.4188144329896907], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame3'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'FontWeight','bold', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.05717762557077625 0.7881958762886597 0.2853881278538812 0.09664948453608246], ... Daniel@0: 'String','From', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'Callback','som_gui(''workspace'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.05107762557077625 0.7087628865979381 0.1997716894977169 0.09664948453608246], ... Daniel@0: 'String','Ws', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','radiobutton', ... Daniel@0: 'Tag','Radiobutton2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'Callback','som_gui(''file'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.05107762557077625 0.5773195876288659 0.2009132420091324 0.09793814432989689], ... Daniel@0: 'String','File', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','radiobutton', ... Daniel@0: 'Tag','Radiobutton1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','Handle = findobj(gcbf,''Tag'',''EditText2'');set(Handle,''String'','''');',... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.2893881278538812 0.7087628865979381 0.3139269406392694 0.09664948453608246], ... Daniel@0: 'Style','edit', ... Daniel@0: 'Tag','EditText1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','Handle = findobj(gcbf,''Tag'',''EditText1'');set(Handle,''String'','''');',... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.2893881278538812 0.5798969072164948 0.3139269406392694 0.09664948453608246], ... Daniel@0: 'Style','edit', ... Daniel@0: 'Tag','EditText2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'Callback','som_gui(''browse'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.6279 0.5799 0.1427 0.2255], ... Daniel@0: 'String','Browse', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','Pushbutton1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'Callback','som_gui(''load_ok'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.8276 0.5577 0.1427 0.2255], ... Daniel@0: 'String','Load', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','Pushbutton2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'Callback','close;',... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.8276 0.2577 0.1427 0.2255], ... Daniel@0: 'String','Cancel', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','Pushbutton3'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'Callback','som_gui(''file_select'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Max',2, ... Daniel@0: 'Min',1, ... Daniel@0: 'String',temp,... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Position',[0.3995433789954338 0.2977319587628866 0.1997716894977169 0.08664948453608246], ... Daniel@0: 'Style','popupmenu', ... Daniel@0: 'Tag','PopupMenu1', ... Daniel@0: 'Value',1); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'FontWeight','bold', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.05707762557077625 0.3865979381443299 0.7134703196347032 0.09664948453608246], ... Daniel@0: 'String','Parameters for file', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.05707762557077625 0.2777319587628866 0.2568493150684931 0.09664948453608246], ... Daniel@0: 'String','File type ', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText3'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.05707762557077625 0.1288659793814433 0.2996575342465753 0.09664948453608246], ... Daniel@0: 'String','Missing value', ... Daniel@0: 'Style','checkbox', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','Checkbox1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''missing'');',... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.5136986301369862 0.1258659793814433 0.08561643835616438 0.10664948453608246], ... Daniel@0: 'String','x', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','edit', ... Daniel@0: 'Tag','EditText3'); Daniel@0: if nargout > 0, fig = h0; end Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: function fig = works() Daniel@0: Daniel@0: v = version; Daniel@0: ver_53_or_newer = (str2num(v(1:3)) >= 5.3); Daniel@0: Daniel@0: h0 = figure('Units','normalized', ... Daniel@0: 'Color',[0.8 0.8 0.8], ... Daniel@0: 'Name','Load from workspace!', ... Daniel@0: 'NumberTitle','off', ... Daniel@0: 'PaperPosition',[18 180 576 432], ... Daniel@0: 'PaperType','a4letter', ... Daniel@0: 'PaperUnits','points', ... Daniel@0: 'Position',[0.5390625 0.2490234375 0.203125 0.251953125], ... Daniel@0: 'Tag','Fig1'); Daniel@0: if ver_53_or_newer, set(h0,'ToolBar','none'); end Daniel@0: Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.05384615384615385 0.1472868217054263 0.9076923076923078 0.8255813953488372], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'Callback','som_gui(''works_ok'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.1077 0.0194 0.2885 0.1202], ... Daniel@0: 'String','OK', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','Pushbutton1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'Callback','close;', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.6115 0.0155 0.2885 0.1202], ... Daniel@0: 'String','Cancel', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','Pushbutton2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Position',[0.1192 0.1977 0.7692 0.6395], ... Daniel@0: 'String',' ', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','listbox', ... Daniel@0: 'Tag','Listbox1', ... Daniel@0: 'Value',1); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'FontWeight','bold', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.2115384615384616 0.8720930232558139 0.576923076923077 0.06976744186046512], ... Daniel@0: 'String','Your options', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText1'); Daniel@0: if nargout > 0, fig = h0; end Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: function fig = initialization2() Daniel@0: Daniel@0: Daniel@0: temp1 = {'random';'linear'}; Daniel@0: temp2 = {'hexa';'rect'}; Daniel@0: temp3 = {'sheet';'cyl';'toroid'}; Daniel@0: Daniel@0: Daniel@0: Daniel@0: % position bug in following corrected 1.12.04 KimmoR Daniel@0: h0 = figure('Units','normalized', ... Daniel@0: 'Color',[0.8 0.8 0.8], ... Daniel@0: 'Name','Change initialization parameters!', ... Daniel@0: 'NumberTitle','off', ... Daniel@0: 'PaperType','a4letter', ... Daniel@0: 'Position',[0.48828125 0.4267578125 0.3515625 0.146484375], ... Daniel@0: 'Tag','Fig1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.02777777777777778 0.08333333333333333 0.8055555555555556 0.8333333333333334], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'Callback','som_gui(''change_initialization_ok'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.8472222222222222 0.55 0.125 0.25], ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'String','OK', ... Daniel@0: 'Tag','Pushbutton1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'Callback','som_gui(''change_initialization_cancel'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.8472222222222222 0.25 0.125 0.25], ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'String','Cancel', ... Daniel@0: 'Tag','Pushbutton2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'FontWeight','bold', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.08333333333333334 0.6666666666666666 0.7066666666666667 0.1933333333333333], ... Daniel@0: 'String','Initialization parameters:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.0556 0.200 0.1667 0.1250],... Daniel@0: 'String','type:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Max',2, ... Daniel@0: 'Min',1, ... Daniel@0: 'Position',[0.2500 0.200 0.1667 0.1250], ... Daniel@0: 'String',temp1, ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','popupmenu', ... Daniel@0: 'Tag','PopupMenu1', ... Daniel@0: 'Value',1); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.05555555555555556 0.6 0.1666666666666667 0.125], ... Daniel@0: 'String','map size:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''map_size'');', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.25 0.6 0.1666666666666667 0.125], ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','edit', ... Daniel@0: 'Tag','EditText1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.05555555555555556 0.4033333333333333 0.1666666666666667 0.125], ... Daniel@0: 'String','lattice:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText3'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Max',2, ... Daniel@0: 'Min',1, ... Daniel@0: 'Position',[0.25 0.4333333333333333 0.1666666666666667 0.125], ... Daniel@0: 'String',temp2, ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','popupmenu', ... Daniel@0: 'Tag','PopupMenu2', ... Daniel@0: 'Value',2); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.4444444444444445 0.4033333333333333 0.1666666666666667 0.125], ... Daniel@0: 'String','shape:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText4'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Max',3, ... Daniel@0: 'Min',1, ... Daniel@0: 'Position',[0.638888888888889 0.4333333333333333 0.1666666666666667 0.125], ... Daniel@0: 'String',temp3, ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','popupmenu', ... Daniel@0: 'Tag','PopupMenu3', ... Daniel@0: 'Value',2); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.4444444444444445 0.6 0.1666666666666667 0.125], ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'String','munits:', ... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText5'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''munits'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.638888888888889 0.6 0.1666666666666667 0.125], ... Daniel@0: 'Style','edit', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','EditText2'); Daniel@0: if nargout > 0, fig = h0; end Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: Daniel@0: function fig = new_para2_2() Daniel@0: Daniel@0: temp1 = {'0';'1';'2';'3'}; Daniel@0: temp2 = {'gaussian';'cutgauss';'ep';'bubble'}; Daniel@0: temp3 = {'epochs';'samples'}; Daniel@0: temp4 = {'random';'ordered'}; Daniel@0: temp5 = {'inv';'linear';'power'}; Daniel@0: Daniel@0: v = version; Daniel@0: ver_53_or_newer = (str2num(v(1:3)) >= 5.3); Daniel@0: Daniel@0: h0 = figure('Units','normalized', ... Daniel@0: 'Color',[0.8 0.8 0.8], ... Daniel@0: 'Name','Change training parameters!', ... Daniel@0: 'NumberTitle','off', ... Daniel@0: 'PaperPosition',[18 180 576 432], ... Daniel@0: 'PaperType','a4letter', ... Daniel@0: 'PaperUnits','points', ... Daniel@0: 'Position',[0.59140625 0.4560546875 0.3046875 0.4619140625], ... Daniel@0: 'Tag','Fig3'); Daniel@0: if ver_53_or_newer, set(h0,'ToolBar','none'); end Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.02051282051282051 0.08456659619450317 0.9641025641025641 0.8921775898520086], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.5308 0.1374 0.4000 0.3742], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame3'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.08012820512820512 0.1416490486257928 0.4102564102564102 0.3699788583509514], ... Daniel@0: 'Style','frame', ... Daniel@0: 'Tag','Frame2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'Callback','close(gcbf);', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.6410 0.0036 0.2897 0.0740], ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'String','Cancel', ... Daniel@0: 'Tag','Pushbutton2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'Callback','som_gui(''set_new_parameters'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.1026 0.0036 0.2897 0.0740], ... Daniel@0: 'String','Set parameters', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','Pushbutton1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Max',4, ... Daniel@0: 'Min',1, ... Daniel@0: 'Position',[0.7051282051282051 0.6723044397463003 0.1923076923076923 0.040169133192389], ... Daniel@0: 'String',temp1, ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','popupmenu', ... Daniel@0: 'Tag','PopupMenu2', ... Daniel@0: 'Value',1); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Max',4, ... Daniel@0: 'Min',1, ... Daniel@0: 'Position',[0.2948717948717949 0.6670190274841438 0.1923076923076923 0.03964059196617336], ... Daniel@0: 'String',temp2, ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','popupmenu', ... Daniel@0: 'Tag','PopupMenu1', ... Daniel@0: 'Value',1); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'Callback','som_gui(''batch_cancel'');', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.5076923076923077 0.6575052854122622 0.1923076923076923 0.05285412262156448], ... Daniel@0: 'String','tracking', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText6'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'Callback','som_gui(''batch_cancel'');', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09615384615384615 0.6553911205073996 0.1923076923076923 0.05285412262156448], ... Daniel@0: 'String','neigh.', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText5'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09615384615384615 0.7526427061310783 0.09487179487179487 0.04228329809725159], ... Daniel@0: 'String','mask:', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Position',[0.2948717948717949 0.7399577167019028 0.6025641025641025 0.07399577167019028], ... Daniel@0: 'String',' ', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','listbox', ... Daniel@0: 'Tag','Listbox2', ... Daniel@0: 'Value',1); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.0962 0.8060 0.1154 0.0529], ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'String','Set', ... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText3'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''set_batch_mask'');', ... Daniel@0: 'Position',[0.2948717948717949 0.8165961945031712 0.3205128205128205 0.05285412262156448], ... Daniel@0: 'String',' ', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','listbox', ... Daniel@0: 'Tag','Listbox1', ... Daniel@0: 'Value',1); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.6250 0.8060 0.1603 0.0529], ... Daniel@0: 'String','to value', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText4'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''set_batch_mask'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.7923076923076923 0.8181818181818182 0.09487179487179487 0.05285412262156448], ... Daniel@0: 'Style','edit', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','EditText2'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''check_fine_trainlen'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.7923 0.2352 0.0974 0.0402], ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','edit', ... Daniel@0: 'Tag','EditText11'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''check_fine_alphaini'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.7923076923076923 0.1664904862579281 0.09743589743589742 0.03805496828752643], ... Daniel@0: 'Style','edit', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','EditText10', ... Daniel@0: 'Visible','off'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''check_fine_radfin'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.7923076923076923 0.3002114164904862 0.09743589743589742 0.040169133192389], ... Daniel@0: 'Style','edit', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','EditText9'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''check_fine_radini'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.7923076923076923 0.3657505285412262 0.09743589743589742 0.040169133192389], ... Daniel@0: 'Style','edit', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','EditText8'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.8 0.8 0.8], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.5590 0.2326 0.2179 0.0402], ... Daniel@0: 'String','training length', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText16'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.8 0.8 0.8], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.5590 0.1665 0.2179 0.0381], ... Daniel@0: 'String','alpha initial', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText14', ... Daniel@0: 'Visible','off'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.8 0.8 0.8], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.5590 0.2981 0.2179 0.0402], ... Daniel@0: 'String','radius final', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText12'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.8 0.8 0.8], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.5590 0.3636 0.2179 0.0402], ... Daniel@0: 'String','radius initial', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText10'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''check_rough_trainlen'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.3590 0.2352 0.0949 0.0402], ... Daniel@0: 'Style','edit', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','EditText7'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''check_rough_alphaini'');', ... Daniel@0: 'Enable','off', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.3590 0.1691 0.0949 0.0381], ... Daniel@0: 'Style','edit', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','EditText6', ... Daniel@0: 'Visible','off'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''check_rough_radfin'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.358974358974359 0.3044397463002114 0.09487179487179487 0.040169133192389], ... Daniel@0: 'Style','edit', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','EditText5'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[1 1 1], ... Daniel@0: 'Callback','som_gui(''check_rough_radini'');', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.358974358974359 0.3699788583509514 0.09487179487179487 0.040169133192389], ... Daniel@0: 'Style','edit', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','EditText4'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.8 0.8 0.8], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.0962 0.2326 0.2179 0.0402], ... Daniel@0: 'String','training length', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText15'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.8 0.8 0.8], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.0962 0.1691 0.2179 0.0381], ... Daniel@0: 'String','alpha initial', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText13', ... Daniel@0: 'Visible','off'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.8 0.8 0.8], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.0962 0.3023 0.2179 0.0402], ... Daniel@0: 'String','radius final', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText11'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.8 0.8 0.8], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.0962 0.3679 0.2179 0.0402], ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'String','radius initial', ... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText9'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.5948717948717949 0.4291754756871036 0.2871794871794872 0.05285412262156448], ... Daniel@0: 'String','Finetune', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText8'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.1205128205128205 0.4355179704016914 0.3153846153846154 0.04862579281183932], ... Daniel@0: 'String','Rough', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText7'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'FontWeight','bold', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.1641025641025641 0.8900634249471459 0.7025641025641025 0.05285412262156448], ... Daniel@0: 'String','Change parameters for batch training', ... Daniel@0: 'Style','text', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','StaticText1'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09615384615384615 0.6025369978858351 0.1743589743589744 0.040169133192389], ... Daniel@0: 'String','length type:', ... Daniel@0: 'Style','text', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Tag','StaticText17'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Max',2, ... Daniel@0: 'Min',1, ... Daniel@0: 'Position',[0.2948717948717949 0.6062367864693446 0.1923076923076923 0.03964059196617336], ... Daniel@0: 'String',temp3, ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','popupmenu', ... Daniel@0: 'Tag','PopupMenu3', ... Daniel@0: 'Value',1); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.5102564102564102 0.6004228329809724 0.1641025641025641 0.040169133192389], ... Daniel@0: 'String','order', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText18'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Max',2, ... Daniel@0: 'Min',1, ... Daniel@0: 'Position',[0.7051282051282051 0.6109936575052853 0.1923076923076923 0.040169133192389], ... Daniel@0: 'String',temp4, ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','popupmenu', ... Daniel@0: 'Tag','PopupMenu4', ... Daniel@0: 'Value',1); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'HorizontalAlignment','left', ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Position',[0.09615384615384615 0.5369978858350951 0.2051282051282051 0.040169133192389], ... Daniel@0: 'String','learning func', ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','text', ... Daniel@0: 'Tag','StaticText19'); Daniel@0: h1 = uicontrol('Parent',h0, ... Daniel@0: 'Units','normalized', ... Daniel@0: 'BackgroundColor',[0.701960784313725 0.701960784313725 0.701960784313725], ... Daniel@0: 'ListboxTop',0, ... Daniel@0: 'Max',3, ... Daniel@0: 'Min',1, ... Daniel@0: 'Position',[0.2948717948717949 0.5454545454545455 0.1923076923076923 0.03964059196617336], ... Daniel@0: 'String',temp5, ... Daniel@0: 'FontUnits','normalized',... Daniel@0: 'Style','popupmenu', ... Daniel@0: 'Tag','PopupMenu5', ... Daniel@0: 'Value',1); Daniel@0: if nargout > 0, fig = h0; end Daniel@0: Daniel@0: Daniel@0: function print_info(sS,level,fid) Daniel@0: Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %% check arguments Daniel@0: Daniel@0: Daniel@0: %error(nargchk(1, 2, nargin)) % check no. of input args is correct Daniel@0: Daniel@0: if ~isstruct(sS), Daniel@0: if ~iscell(sS) | ~isstruct(sS{1}), Daniel@0: error('Input argument is not a struct or a cell array of structs.') Daniel@0: end Daniel@0: csS = sS; Daniel@0: else Daniel@0: csS = {sS}; Daniel@0: end Daniel@0: Daniel@0: if nargin<2 | isempty(level) | isnan(level), level = 1; end Daniel@0: Daniel@0: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Daniel@0: %% print struct information Daniel@0: Daniel@0: for c=1:length(csS), Daniel@0: sS = csS{c}; Daniel@0: Daniel@0: switch sS.type, Daniel@0: case 'som_map', Daniel@0: mdim = length(sS.topol.msize); Daniel@0: [munits dim] = size(sS.codebook); Daniel@0: t = length(sS.trainhist); Daniel@0: if t==0, st='uninitialized'; Daniel@0: elseif t==1, st = 'initialized'; Daniel@0: else st = sprintf('initialized, trained %d times',t-1); Daniel@0: end Daniel@0: Daniel@0: % level 1 Daniel@0: fprintf(fid,'%% Struct type : %s\n', sS.type); Daniel@0: fprintf(fid,'%% Map name : %s\n', sS.name); Daniel@0: fprintf(fid,'%% Input dimension : %d\n', dim); Daniel@0: fprintf(fid,'%% Map grid size : '); Daniel@0: for i = 1:mdim - 1, fprintf(fid,'%d x ',sS.topol.msize(i)); end Daniel@0: fprintf(fid,'%d\n', sS.topol.msize(mdim)); Daniel@0: fprintf(fid,'%% Lattice type (rect/hexa) : %s\n', sS.topol.lattice); Daniel@0: fprintf(fid,'%% Shape (sheet/cyl/toroid) : %s\n', sS.topol.shape); Daniel@0: fprintf(fid,'%% Neighborhood type : %s\n', sS.neigh); Daniel@0: fprintf(fid,'%% Mask : '); Daniel@0: if dim, Daniel@0: for i = 1:dim-1, fprintf(fid,'%d ',sS.mask(i)); end; Daniel@0: fprintf(fid,'%d\n',sS.mask(dim)); Daniel@0: else fprintf(fid,'%% \n'); Daniel@0: end Daniel@0: fprintf(fid,'%% Training status : %s\n', st); Daniel@0: Daniel@0: % level 1, Daniel@0: status = cell(dim,1); Daniel@0: for i=1:dim, Daniel@0: n = length(sS.comp_norm{i}); Daniel@0: if n, Daniel@0: uninit = strcmp('uninit',{sS.comp_norm{i}.status}); Daniel@0: done = strcmp('done',{sS.comp_norm{i}.status}); Daniel@0: undone = strcmp('undone',{sS.comp_norm{i}.status}); Daniel@0: if sum(uninit)==n, status{i} = 'no normalization'; Daniel@0: elseif sum(done)==n, status{i} = 'normalized'; Daniel@0: elseif sum(undone)==n, status{i} = 'denormalized'; Daniel@0: else status{i} = 'partial'; Daniel@0: end Daniel@0: else status{i} = 'no normalization'; end Daniel@0: end Daniel@0: if level>1, Daniel@0: fprintf(fid,'%% Vector components\n'); Daniel@0: M = sS.codebook; Daniel@0: fprintf(fid,'%% # name mask min mean max std status\n'); Daniel@0: fprintf(fid,'%% --- ------------ ---- ------ ------ ------ ------ ------\n'); Daniel@0: for i = 1:dim, Daniel@0: fprintf(fid,'%% %-3d %-12s %-4.2f %6.1g %6.1g %6.1g %6.1g %s\n', ... Daniel@0: i,sS.comp_names{i}, sS.mask(i), ... Daniel@0: min(M(:,i)),mean(M(:,i)),max(M(:,i)),std(M(:,i)),status{i}); Daniel@0: end Daniel@0: end Daniel@0: Daniel@0: % level 3 Daniel@0: if level>2, Daniel@0: fprintf(fid,'%% Vector component normalizations\n'); Daniel@0: fprintf(fid,'%% # name method (i=uninit,u=undone,d=done)\n'); Daniel@0: fprintf(fid,'%% --- ------------ ---------------------------------------\n'); Daniel@0: for i=1:dim, Daniel@0: fprintf(fid,'%% %-3d %-12s ',i,sS.comp_names{i}); Daniel@0: n = length(sS.comp_norm{i}); Daniel@0: for j=1:n, Daniel@0: m = sS.comp_norm{i}(j).method; Daniel@0: s = sS.comp_norm{i}(j).status; Daniel@0: if strcmp(s,'uninit'), c='i'; Daniel@0: elseif strcmp(s,'undone'), c='u'; Daniel@0: else c='d'; Daniel@0: end Daniel@0: fprintf(fid,'%% %s[%s] ',m,c); Daniel@0: end Daniel@0: fprintf(fid,'%% \n'); Daniel@0: end Daniel@0: end Daniel@0: Daniel@0: % level 4 Daniel@0: if level>3, Daniel@0: fprintf(fid,'%% Training history\n'); Daniel@0: for i=1:t, Daniel@0: sT = sS.trainhist(i); Daniel@0: fprintf(fid,'%% * Algorithm: %8s Data: %13s Trainlen: %8d\n',... Daniel@0: sT.algorithm,sT.data_name,sT.trainlen); Daniel@0: %if i>1, Daniel@0: fprintf(fid,'%% Neighborh: %8s Mask: ',sT.neigh); Daniel@0: for i = 1:dim-1, fprintf(fid,'%% %d ',sT.mask(i)); end; Daniel@0: fprintf(fid,'%% %d\n',sT.mask(mdim)); Daniel@0: fprintf(fid,'%% Radius: %4.2f->%4.2f Alpha: %5.3f (%s)\n', ... Daniel@0: sT.radius_ini,sT.radius_fin,sT.alpha_ini,sT.alpha_type); Daniel@0: %end Daniel@0: fprintf(fid,'%% Time: %s\n',sT.time); Daniel@0: end Daniel@0: end Daniel@0: Daniel@0: case 'som_data', Daniel@0: Daniel@0: [dlen dim] = size(sS.data); Daniel@0: if dlen*dim Daniel@0: ind = find(~isnan(sum(sS.data),2)); Daniel@0: else ind = []; end Daniel@0: complete = size(sS.data(ind,:),1); Daniel@0: partial = dlen - complete; Daniel@0: values = prod(size(sS.data)); Daniel@0: missing = sum(sum(isnan(sS.data))); Daniel@0: Daniel@0: % level 1 Daniel@0: fprintf(fid,'%% Struct type : %s\n', sS.type); Daniel@0: fprintf(fid,'%% Data name : %s\n', sS.name); Daniel@0: fprintf(fid,'%% Vector dimension : %d\n', dim); Daniel@0: fprintf(fid,'%% Number of data vectors : %d\n', dlen); Daniel@0: fprintf(fid,'%% Complete data vectors : %d\n', complete); Daniel@0: fprintf(fid,'%% Partial data vectors : %d\n', partial); Daniel@0: if values, r = floor(100 * (values - missing) / values); else r = 0; end Daniel@0: fprintf(fid,'%% Complete values : %d of %d (%d%%)\n', ... Daniel@0: values-missing, values, r); Daniel@0: Daniel@0: % level 2, Daniel@0: status = cell(dim,1); Daniel@0: for i=1:dim, Daniel@0: n = length(sS.comp_norm{i}); Daniel@0: if n, Daniel@0: uninit = strcmp('uninit',{sS.comp_norm{i}.status}); Daniel@0: done = strcmp('done',{sS.comp_norm{i}.status}); Daniel@0: undone = strcmp('undone',{sS.comp_norm{i}.status}); Daniel@0: if sum(uninit)==n, status{i} = 'no normalization'; Daniel@0: elseif sum(done)==n, status{i} = 'normalized'; Daniel@0: elseif sum(undone)==n, status{i} = 'denormalized'; Daniel@0: else status{i} = 'partial'; Daniel@0: end Daniel@0: else status{i} = 'no normalization'; end Daniel@0: end Daniel@0: if level>1, Daniel@0: fprintf(fid,'%% Vector components\n'); Daniel@0: D = sS.data; Daniel@0: fprintf(fid,'%% # name min mean max std missing status\n'); Daniel@0: fprintf(fid,'%% --- ------------ ------ ------ ------ ------ ----------- ------\n'); Daniel@0: for i = 1:dim, Daniel@0: known = find(~isnan(D(:,i))); Daniel@0: miss = dlen-length(known); Daniel@0: fprintf(fid,'%% %-3d %-12s %6.1g %6.1g %6.1g %6.1g %5d (%2d%%) %s\n', ... Daniel@0: i,sS.comp_names{i}, ... Daniel@0: min(D(known,i)),mean(D(known,i)),max(D(known,i)),std(D(known,i)), ... Daniel@0: miss,floor(100*miss/dlen),status{i}); Daniel@0: end Daniel@0: end Daniel@0: Daniel@0: % level 3 Daniel@0: if level>2, Daniel@0: fprintf(fid,'%% Vector component normalizations\n'); Daniel@0: fprintf(fid,'%% # name method (i=uninit,u=undone,d=done)\n'); Daniel@0: fprintf(fid,'%% --- ------------ ---------------------------------------\n'); Daniel@0: for i=1:dim, Daniel@0: fprintf(fid,'%% %-3d %-12s ',i,sS.comp_names{i}); Daniel@0: n = length(sS.comp_norm{i}); Daniel@0: for j=1:n, Daniel@0: m = sS.comp_norm{i}(j).method; Daniel@0: s = sS.comp_norm{i}(j).status; Daniel@0: if strcmp(s,'uninit'), c='i'; Daniel@0: elseif strcmp(s,'undone'), c='u'; Daniel@0: else c='d'; Daniel@0: end Daniel@0: fprintf(fid,'%% %s[%s] ',m,c); Daniel@0: end Daniel@0: fprintf(fid,'%% \n'); Daniel@0: end Daniel@0: end Daniel@0: Daniel@0: case 'som_topol', Daniel@0: Daniel@0: mdim = length(sS.msize); Daniel@0: Daniel@0: % level 1 Daniel@0: fprintf(fid,'%% Struct type : %s\n',sS.type); Daniel@0: fprintf(fid,'%% Map grid size : '); Daniel@0: for i = 1:mdim - 1, fprintf(fid,'%% %d x ',sS.msize(i)); end Daniel@0: fprintf(fid,'%% %d\n', sS.msize(mdim)); Daniel@0: fprintf(fid,'%% Lattice type (rect/hexa) : %s\n', sS.lattice); Daniel@0: fprintf(fid,'%% Shape (sheet/cyl/toroid) : %s\n', sS.shape); Daniel@0: Daniel@0: case 'som_train', Daniel@0: Daniel@0: % level 1 Daniel@0: fprintf(fid,'%% Struct type : %s\n',sS.type); Daniel@0: fprintf(fid,'%% Training algorithm : %s\n',sS.algorithm); Daniel@0: fprintf(fid,'%% Training data : %s\n',sS.data_name); Daniel@0: fprintf(fid,'%% Neighborhood function : %s\n',sS.neigh); Daniel@0: fprintf(fid,'%% Mask : '); Daniel@0: dim = length(sS.mask); Daniel@0: if dim, Daniel@0: for i = 1:dim-1, fprintf(fid,'%% %d ',sS.mask(i)); end; Daniel@0: fprintf(fid,'%% %d\n',sS.mask(end)); Daniel@0: else fprintf(fid,'%% \n'); end Daniel@0: fprintf(fid,'%% Initial radius : %-6.1f\n',sS.radius_ini); Daniel@0: fprintf(fid,'%% Final radius : %-6.1f\n',sS.radius_fin); Daniel@0: fprintf(fid,'%% Initial learning rate (alpha) : %-6.1f\n',sS.alpha_ini); Daniel@0: fprintf(fid,'%% Alpha function type (linear/inv) : %s\n',sS.alpha_type); Daniel@0: fprintf(fid,'%% Training length : %d\n',sS.trainlen); Daniel@0: fprintf(fid,'%% Average quantization error : %-6.1f\n',sS.qerror); Daniel@0: fprintf(fid,'%% When training was done : %s\n',sS.time); Daniel@0: Daniel@0: case 'som_norm', Daniel@0: Daniel@0: % level 1 Daniel@0: fprintf(fid,'%% Struct type : %s\n',sS.type); Daniel@0: fprintf(fid,'%% Normalization method : %s\n',sS.method); Daniel@0: fprintf(fid,'%% Status : %s\n',sS.status); Daniel@0: Daniel@0: % level 2 Daniel@0: if level>1, Daniel@0: fprintf(fid,'%% Parameters:\n'); Daniel@0: sS.params Daniel@0: end Daniel@0: end Daniel@0: end Daniel@0: Daniel@0: function [] = html2tex(html_addres,texfile) Daniel@0: Daniel@0: tempfile = tempname; Daniel@0: fid = fopen(texfile,'w'); Daniel@0: eval(['!lynx -dump ' html_addres ' > ' tempfile]); Daniel@0: fid2 = fopen(tempfile,'r'); Daniel@0: while not(feof(fid2)) Daniel@0: line = fgets(fid2); Daniel@0: line = strcat('%',line); Daniel@0: fprintf(fid,'%s',line); Daniel@0: end Daniel@0: fclose(fid); Daniel@0: fclose(fid2); Daniel@0: delete (tempfile); Daniel@0: Daniel@0: Daniel@0: function [name] = retname Daniel@0: resnames = who; Daniel@0: if size(resnames,1) > 0 Daniel@0: max_length = size(resnames{1},2); Daniel@0: for index = 1:size(resnames,1) Daniel@0: if size(resnames{index},2) > max_length Daniel@0: max_length = size(resnames{index},2); Daniel@0: end Daniel@0: end Daniel@0: length = max_length + 1; Daniel@0: name(:,1:1:length) = 'A' Daniel@0: else Daniel@0: name = 'A'; Daniel@0: end Daniel@0: %% Daniel@0: Daniel@0: Daniel@0: