📄 som_gui.m
字号:
set(Handle,'String','Change parameters for batch training'); Handle = findobj(gcf,'Tag','PopupMenu3'); set(Handle,'Enable','off'); set(Handle,'Visible','off'); Handle = findobj(gcf,'Tag','PopupMenu4'); set(Handle,'Enable','off'); set(Handle,'Visible','off'); Handle = findobj(gcf,'Tag','PopupMenu5'); set(Handle,'Enable','off'); set(Handle,'Visible','off'); Handle = findobj(gcf,'Tag','StaticText17'); set(Handle,'Visible','off'); Handle = findobj(gcf,'Tag','StaticText18'); set(Handle,'Visible','off'); Handle = findobj(gcf,'Tag','StaticText19'); set(Handle,'Visible','off'); Handle = findobj(gcf,'Tag','StaticText13'); set(Handle,'Visible','off'); Handle = findobj(gcf,'Tag','StaticText14'); set(Handle,'Visible','off'); Handle = findobj(gcf,'Tag','EditText6'); set(Handle,'Visible','off'); set(Handle,'Enable','off'); Handle = findobj(gcf,'Tag','EditText10'); set(Handle,'Visible','off'); set(Handle,'Enable','off'); else return; endsom_gui('def_values_train'); mask = STRAIN1.mask;Handle = findobj(gcf,'Tag','Listbox1');set(Handle,'String',DATA.comp_names);som_gui('fill_new_defaults');function [] = fill_new_defaults()global STRAIN1 STRAIN2 SOTHERS ALGORITHM;Handle = findobj(gcf,'Tag','EditText4');temp = num2str(STRAIN1.radius_ini);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','EditText8');temp = num2str(STRAIN2.radius_ini);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','EditText5');temp = num2str(STRAIN1.radius_fin);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','EditText9');temp = num2str(STRAIN2.radius_fin);set(Handle,'String',temp); Handle = findobj(gcf,'Tag','EditText6');temp = num2str(STRAIN1.alpha_ini);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','EditText10');temp = num2str(STRAIN2.alpha_ini);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','EditText7');temp = num2str(STRAIN1.trainlen);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','EditText11');temp = num2str(STRAIN2.trainlen);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','Listbox2');temp = num2str(STRAIN1.mask');set(Handle,'String',temp);Handle = findobj(gcf,'Tag','PopupMenu2');string = get(Handle,'String');val = loop(string,SOTHERS.tracking);set(Handle,'Value',val);Handle = findobj(gcf,'Tag','PopupMenu1');string = get(Handle,'String');val = loop(string,STRAIN1.neigh);set(Handle,'Value',val);if strcmp(ALGORITHM,'seq') Handle = findobj(gcf,'Tag','PopupMenu3'); string = get(Handle,'String'); val = loop(string,SOTHERS.length_type); set(Handle,'Value',val); Handle = findobj(gcf,'Tag','PopupMenu4'); string = get(Handle,'String'); val = loop(string,SOTHERS.oder); set(Handle,'Value',val); Handle = findobj(gcf,'Tag','PopupMenu5'); string = get(Handle,'String'); val = loop(string,STRAIN1.alpha_type); set(Handle,'Value',val);end function [] = set_new_parameters()global STRAIN1 STRAIN2 ALGORITHM SOTHERS; Handle = findobj(gcbf,'Tag','Listbox2');temp = get(Handle,'String');mask = str2num(temp); %%%%%%%%%%%%% Do somthingmask = mask';Handle = findobj(gcbf,'Tag','PopupMenu1');temp = get(Handle,'String');val = get(Handle,'Value');neigh = temp{val};Handle = findobj(gcbf,'Tag','PopupMenu2');temp = get(Handle,'String');val = get(Handle,'Value');SOTHERS.tracking = temp{val}; %%%%% finetune phase!Handle = findobj(gcbf,'Tag','EditText4');temp = get(Handle,'String');rad_ini1 = str2num(temp);Handle = findobj(gcbf,'Tag','EditText8');temp = get(Handle,'String');rad_ini2 = str2num(temp);Handle = findobj(gcbf,'Tag','EditText5');temp = get(Handle,'String');rad_fin1 = str2num(temp);Handle = findobj(gcbf,'Tag','EditText9');temp = get(Handle,'String');rad_fin2 = str2num(temp);Handle = findobj(gcbf,'Tag','EditText6');temp = get(Handle,'String');alpha_ini1 = str2num(temp);Handle = findobj(gcbf,'Tag','EditText10');temp = get(Handle,'String');alpha_ini2 = str2num(temp);Handle = findobj(gcbf,'Tag','EditText7');temp = get(Handle,'String');train_length1 = str2num(temp);Handle = findobj(gcbf,'Tag','EditText11');temp = get(Handle,'String');train_length2 = str2num(temp);if strcmp(ALGORITHM,'seq') Handle = findobj(gcbf,'Tag','PopupMenu3'); temp = get(Handle,'String'); val = get(Handle,'Value'); SOTHERS.length_type = temp{val}; Handle = findobj(gcbf,'Tag','PopupMenu4'); temp = get(Handle,'String'); val = get(Handle,'Value'); SOTHERS.oder= temp{val}; Handle = findobj(gcbf,'Tag','PopupMenu5'); temp = get(Handle,'String'); val = get(Handle,'Value'); alpha_type = temp{val};else alpha_type = 'inv';endSTRAIN1.neigh = neigh;STRAIN2.neigh = neigh;STRAIN1.mask = mask;STRAIN2.mask = mask;STRAIN1.radius_ini = rad_ini1;STRAIN2.radius_ini = rad_ini2;STRAIN1.radius_fin = rad_fin1;STRAIN2.radius_fin = rad_fin2;STRAIN1.alpha_ini = alpha_ini1;STRAIN2.alpha_ini = alpha_ini2;STRAIN1.alpha_type = alpha_type;STRAIN2.alpha_type = alpha_type;STRAIN1.trainlen = train_length1;STRAIN2.trainlen = train_length2;close(gcbf);som_gui('fill_fields');som_gui('def_values_others');function [] = only_finetune()Handle = findobj(gcbf,'Tag','Radiobutton1');test = get(Handle,'Value');if test == 1 Handle = findobj(gcbf,'Tag','StaticText16'); set(Handle,'Enable','off'); Handle = findobj(gcbf,'Tag','StaticText17'); set(Handle,'Enable','off'); Handle = findobj(gcbf,'Tag','StaticText22'); set(Handle,'Enable','off'); Handle = findobj(gcbf,'Tag','StaticText26'); set(Handle,'Enable','off');else Handle = findobj(gcbf,'Tag','StaticText16'); set(Handle,'Enable','on'); Handle = findobj(gcbf,'Tag','StaticText17'); set(Handle,'Enable','on'); Handle = findobj(gcbf,'Tag','StaticText22'); set(Handle,'Enable','on'); Handle = findobj(gcbf,'Tag','StaticText26'); set(Handle,'Enable','on');endfunction [] = check_rough_radini()global STRAIN1;msgs = {'Initial radius must be number!';... 'Initial radius must be single valued number!'};[msgs_nro, value, Handle] = check_ok('EditText4');if msgs_nro > 0 errordlg({msgs{msgs_nro}},'Incorrect initial radius!') temp = num2str(STRAIN1.radius_ini); set(Handle,'String',temp); return;endfunction [] = check_fine_radini()global STRAIN2;msgs = {'Initial radius must be number!';... 'Initial radius must be single valued number!'};[msgs_nro, value, Handle] = check_ok('EditText8');if msgs_nro > 0 errordlg({msgs{msgs_nro}},'Incorrect initial radius!') temp = num2str(STRAIN2.radius_ini); set(Handle,'String',temp); return;endfunction [] = check_rough_radfin()global STRAIN1;msgs = {'Final radius must be number!';... 'Final radius must be single valued number!'};[msgs_nro, value, Handle] = check_ok('EditText5');if msgs_nro > 0 errordlg({msgs{msgs_nro}},'Incorrect final radius!') temp = num2str(STRAIN1.radius_fin); set(Handle,'String',temp); return;endfunction [] = check_fine_radfin()global STRAIN2;msgs = {'Final radius must be number!';... 'Final radius must be single valued number!'};[msgs_nro, value, Handle] = check_ok('EditText9');if msgs_nro > 0 errordlg({msgs{msgs_nro}},'Incorrect final radius!') temp = num2str(STRAIN2.radius_fin); set(Handle,'String',temp); return;endfunction [] = check_rough_alphaini()global STRAIN1; msgs = {'Alpha initial must be number!';... 'Alpha initial must be single valued number!'};[msgs_nro, value, Handle] = check_ok('EditText6');if msgs_nro > 0 errordlg({msgs{msgs_nro}},'Incorrect initial alpha!') temp = num2str(STRAIN1.alpha_ini); set(Handle,'String',temp); return;endfunction [] = check_fine_alphaini()global STRAIN2;msgs = {'Alpha initial must be number!';... 'Alpha initial must be single valued number!'};[msgs_nro, value, Handle] = check_ok('EditText10');if msgs_nro > 0 errordlg({msgs{msgs_nro}},'Incorrect initial alpha!') temp = num2str(STRAIN2.alpha_ini); set(Handle,'String',temp); return;endfunction [] = check_rough_trainlen()global STRAIN1;msgs = {'Training length must be number!';... 'Training length must be single valued number!'};[msgs_nro, value, Handle] = check_ok('EditText7');if msgs_nro > 0 errordlg({msgs{msgs_nro}},'Incorrect training length!') temp = num2str(STRAIN1.trainlen); set(Handle,'String',temp); return;endfunction [] = check_fine_trainlen()global STRAIN2;msgs = {'Training length must be number!';... 'Training length must be single valued number!'};[msgs_nro, value, Handle] = check_ok('EditText11');if msgs_nro > 0 errordlg({msgs{msgs_nro}},'Incorrect training length!') temp = num2str(STRAIN2.trainlen); set(Handle,'String',temp); return;end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END OF TRAINING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% START OF SAVING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [] = savemap()global MAP MAPSAVED;if isempty(MAP) str = {'There is no map to be saved! Train map before saving.'}; helpdlg(str,'Empty map!'); return;end[FileName Path] = uiputfile('*.cod','Save file!');if FileName ~= 0 temp = strcat(Path,FileName); som_write_cod(MAP,temp); MAPSAVED = 'SAVED';endHandle = findobj(gcf,'Tag','StaticText10');set(Handle,'String','Status <map saved>'); function [] = save_workspace()global MAP MAPSAVED;if isempty(MAP) str = {'There is no map to be saved! Train map before saving.'}; helpdlg(str,'Empty map!'); return;else prompt = {'Save map as?'}; title = 'Save map!'; lineNo = 1; answer = inputdlg(prompt,title,lineNo); if isempty(answer) return; end if not(isempty(answer{1})) ws_variable = evalin('base','who'); max_length = 0; for index = 1:size(ws_variable,1) if max_length < size(ws_variable{index},2) max_length = size(ws_variable{index},2); end end length = max_length + 1; tempfoo(1:1:length) = 'A'; assignin('base',tempfoo,answer{1}); str = ['exist(' tempfoo ')']; temp = evalin('base',str); %%%%%%%%%%@@@@@@@@@ evalin('base',['clear ' tempfoo ]) if temp == 0 assignin('base',answer{1},MAP); MAPSAVED = 'SAVED'; elseif temp ~= 0 Questmsg = strcat('Variable',' ''',answer{1},'''',... ' exist. Overwrite?'); ButtonName = questdlg(Questmsg); switch(ButtonName) case 'Yes' assignin('base',answer{1},MAP); MAPSAVED = 'SAVED'; case 'No' som_gui('save_workspace'); end end else helpmsg = {'There cannot be any empty field in ''save'''}; helpdlg(helpmsg,'Help Save!'); som_gui('save'); endendHandle = findobj(gcf,'Tag','StaticText10');set(Handle,'String','Status <map saved>');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END OF SAVING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% START OF HELP & INFO %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %HEREXXfunction [] = data_info()global DATA;if isempty(DATA) helpmsg = 'Load data first!'; helpdlg(helpmsg,'Empty data!'); return;endfile_name = tempname;file_name = strcat(file_name,'.m');fid = fopen(file_name,'w');fprintf(fid,'%% %+35s\n','DATA INFO');fprintf(fid,'%%\n');print_info(DATA,2,fid);directory = tempdir;addpath (directory);helpwin (file_name);fclose(fid);delete(file_name);rmpath (directory);function [] = map_info()global MAP;if isempty(MAP) helpmsg = 'There is no map!'; helpdlg(helpmsg,'Empty map!'); return;endfile_name = tempname;file_name = strcat(file_name,'.m');fid = fopen(file_name,'w');fprintf(fid,'%% %+35s\n','MAP INFO');fprintf(fid,'%%\n');print_info(MAP,2,fid);directory = tempdir;addpath (directory);helpwin (file_name);fclose(fid);delete(file_name);rmpath (directory);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -