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

📄 som_gui.m

📁 适用于需要用matlab环境
💻 M
📖 第 1 页 / 共 5 页
字号:
set(Handle,'Enable','on');Handle = findobj(gcf,'Tag','&Init&TrainInitialize1');set(Handle,'Enable','on');Handle = findobj(gcf,'Tag','Subuimenu1');set(Handle,'Enable','off'); %%%%%%????????	Handle = findobj(gcf,'Tag','StaticText10');set(Handle,'String','Status <data loaded>');	function [] = browse()global HANDLE2;HandleWorkspace = findobj(gcbf,'Tag','Radiobutton2');HandleFile = findobj(gcbf,'Tag','Radiobutton1');WorkspaceVal = get(HandleWorkspace,'Value');FileVal = get(HandleFile,'Value');if FileVal == 1   Handle = findobj(gcbf,'Tag','PopupMenu1');   str = get(Handle,'String');   value = get(Handle,'Value');   str = str{value};   if strcmp(str,'mat file')      filtter = '*.mat';   else      filtter = '*.dat*';   end    [filename pathname] = uigetfile(filtter,'Load file.');   temp = strcat(pathname,filename);   Handle = findobj(gcbf,'Tag','EditText2');   set(Handle,'String',temp);elseif WorkspaceVal == 1   HANDLE2 = gcf;   works;   temp = evalin('base','who');   index2 = 1;   names = '';   for index = 1:length(temp)      if isnumeric(evalin('base',temp{index}))	test = size(evalin('base',temp{index}));	if test(1) ~= 1 & test(2) ~= 1   	   names{index2} = temp{index};		   index2 = index2 + 1;	end      end   end   for index = 1:length(temp)	variable = evalin('base',temp{index});	if isstruct(variable)	   fnames = fieldnames(variable);	   if size(fnames,1) == 6 & strcmp(fnames(1),'type') & strcmp(variable.type,'som_data')	     names{index2} = temp{index};		     index2 = index2 + 1;	   end	end    end	   Handle = findobj(gcf,'Tag','Listbox1');
   %%%%%% if is empty string#%%%   set(Handle,'String',names);else   errmsg = 'Select browse type: Workspace or file.';   errordlg(errmsg,'Browse error!');   return;endfunction [] = works_ok()global HANDLE2;Handle = findobj(gcbf,'Tag','Listbox1');temp = get(Handle,'String');val = get(Handle,'Value');data = temp{val};Handle = findobj(HANDLE2,'Tag','EditText1');set(Handle,'String',data);close;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%				%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     END OF LOAD SECTION	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%				%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%				%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     START OF INITIALIZATION	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%				%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%	function [] = def_initialization()global DATA STOPOLINIT INIT_TYPE;sTopol = som_topol_struct('data',DATA);Handle = findobj(gcf,'Tag','StaticText5');temp = num2str(sTopol.msize);temp = strcat('map size:',' [',temp,']');set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText6');set(Handle,'String','type: linear');Handle = findobj(gcf,'Tag','StaticText20');temp = strcat('lattice:',sTopol.lattice);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText21');temp = strcat('shape:',sTopol.shape);set(Handle,'String',temp);STOPOLINIT = sTopol;INIT_TYPE = 'linear';function [] = change_initialization()global INIT_TYPE STOPOLINIT; initialization2;Handle = findobj(gcf,'Tag','PopupMenu1');temp = get(Handle,'String');val = loop(temp,INIT_TYPE);set(Handle,'Value',val);Handle = findobj(gcf,'Tag','PopupMenu2');temp = get(Handle,'String');val = loop(temp,STOPOLINIT.lattice);set(Handle,'Value',val);Handle = findobj(gcf,'Tag','PopupMenu3');temp = get(Handle,'String');val = loop(temp,STOPOLINIT.shape);set(Handle,'Value',val);Handle = findobj(gcf,'Tag','EditText1');temp = num2str(STOPOLINIT.msize);msize = strcat('[',temp,']');set(Handle,'String',msize);function [] = change_initialization_ok()Handle = findobj(gcbf,'Tag','PopupMenu1');temp = get(Handle,'String');val = get(Handle,'Value');INIT_TYPE = temp{val};Handle = findobj(gcbf,'Tag','PopupMenu2');temp = get(Handle,'String');val = get(Handle,'Value');lattice = temp{val};Handle = findobj(gcbf,'Tag','PopupMenu3');temp = get(Handle,'String');val = get(Handle,'Value');shape = temp{val};Handle = findobj(gcbf,'Tag','EditText1');temp = get(Handle,'String');msize = str2num(temp);STOPOLINIT = som_set('som_topol','msize',msize,'lattice',lattice,'shape',shape);close(gcf);Handle = findobj(gcf,'Tag','StaticText5');temp = num2str(STOPOLINIT.msize);temp = strcat('map size:',' [',temp,']');set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText6');temp = strcat('type:',INIT_TYPE);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText20');temp = strcat('lattice:',STOPOLINIT.lattice);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText21');temp = strcat('shape:',STOPOLINIT.shape);set(Handle,'String',temp);function [] = def_values_others()global SOTHERS;Handle = findobj(gcf,'Tag','StaticText19');temp = strcat('tracking:',SOTHERS.tracking);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText12');temp = strcat('order:',SOTHERS.oder);set(Handle,'String',temp); Handle = findobj(gcf,'Tag','StaticText14');temp = strcat('length_type:',SOTHERS.length_type);set(Handle,'String',temp);function [] = fill_fields()global STRAIN1 STRAIN2 ALGORITHMneigh = STRAIN1.neigh;mask = STRAIN1.mask;rad_ini1 = STRAIN1.radius_ini;rad_ini2 = STRAIN2.radius_ini;rad_fin1 = STRAIN1.radius_fin;rad_fin2 = STRAIN2.radius_fin;trainlen1 = num2str(STRAIN1.trainlen);trainlen2 = num2str(STRAIN2.trainlen);alpha_ini1 = num2str(STRAIN1.alpha_ini);alpha_ini2 = num2str(STRAIN2.alpha_ini);if strcmp(ALGORITHM,'seq')        alpha_type = STRAIN1.alpha_type; %%% only in sequential        Handle = findobj(gcf,'Tag','StaticText28');        temp = strcat('alpha type:',alpha_type);        set(Handle,'String',temp);endHandle = findobj(gcf,'Tag','StaticText11');temp = strcat('neigh: ',neigh);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText22');temp = num2str(rad_fin1);temp = strcat('radius final:',temp);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText25');temp = num2str(rad_fin2);temp = strcat('radius final:',temp);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText11');temp = strcat('neigh: ',neigh);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText17');temp = num2str(rad_ini1);temp = strcat('radius initial:',temp);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText24');temp = num2str(rad_ini2);temp = strcat('radius initial:',temp);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText16');temp = num2str(trainlen1);temp = strcat('training length:',temp);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText23');temp = num2str(trainlen2);temp = strcat('training length:',temp);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText26');temp = strcat('alpha initial:',alpha_ini1);set(Handle,'String',temp);Handle = findobj(gcf,'Tag','StaticText27');temp = strcat('alpha initial:',alpha_ini2);set(Handle,'String',temp);function [] = init();global INIT_TYPE MAP NEWMAP ALGORITHM SOTHERS DATA STOPOLINIT;if strcmp(INIT_TYPE,'random')   MAP = som_randinit(DATA,STOPOLINIT);else    MAP = som_lininit(DATA,STOPOLINIT);endNEWMAP = MAP;	temp = 'Map:';temp = strcat(temp,' <',MAP.name,'>');Handle = findobj(gcbf,'Tag','StaticText3');set(Handle,'String',temp);Handle = findobj(gcbf,'Tag','StaticText10');set(Handle,'String','Status <map initialized>');ALGORITHM = 'batch';Handle = findobj(gcbf,'Tag','Pushbutton4');set(Handle,'Enable','off');Handle = findobj(gcbf,'Tag','Pushbutton6');set(Handle,'Enable','on');Handle = findobj(gcbf,'Tag','Pushbutton5');set(Handle,'Enable','on');		SOTHERS.tracking = '1';SOTHERS.length_type = 'epochs';SOTHERS.oder = 'random';			som_gui('def_values_topol');som_gui('def_values_train');som_gui('def_values_others');som_gui('fill_fields');Handle = findobj(gcbf,'Tag','Pushbutton4');set(Handle,'Enable','off');Handle = findobj(gcbf,'Tag','Pushbutton9');set(Handle,'Enable','off');Handle = findobj(gcbf,'Tag','Radiobutton1');set(Handle,'Enable','on');Handle = findobj(gcbf,'Tag','&Init&TrainChange initialization valuesuimenu1');set(Handle,'Enable','on');Handle = findobj(gcbf,'Tag','&Init&TrainTrain1');set(Handle,'Enable','on');Handle = findobj(gcbf,'Tag','&Help/InfoData infouimenu1');set(Handle,'Enable','on');	Handle = findobj(gcbf,'Tag','Subuimenu2');set(Handle,'Enable','off');Handle = findobj(gcbf,'Tag','&Init&Trainuimenu1');set(Handle,'Enable','off');Handle = findobj(gcbf,'Tag','&Init&TrainInitialize1');set(Handle,'Enable','off');  %%%%%%%%%%%??????????			Handle = findobj(gcbf,'Tag','StaticText9');set(Handle,'String','training type: batch');	function [] = set_batch_mask()Handle = findobj(gcbf,'Tag','Listbox2');temp = get(Handle,'String');mask = str2num(temp);Handle = findobj(gcbf,'Tag','Listbox1');replace = get(Handle,'Value');Handle = findobj(gcbf,'Tag','EditText2');temp = get(Handle,'String');value = str2num(temp);if not(isempty(value))  mask(replace) = value;  Handle = findobj(gcbf,'Tag','Listbox2');  temp = num2str(mask);  set(Handle,'String',temp);endfunction [] = munits()global DATA STOPOLINIT;msgs = {'Correct map units is number';'Correct map units is number'};[msgs_nro, value] = check_ok('EditText2');if msgs_nro > 0   errordlg({msgs{msgs_nro}},'Incorrect map units!')   return;endSTOPOLINIT = som_topol_struct('munits',value,'data',DATA);Handle = findobj(gcbf,'Tag','EditText1');temp = num2str(STOPOLINIT.msize);msize = strcat('[',temp,']');set(Handle,'String',msize);function [] = map_size() global STOPOLINIT; msgs = {'Map size must be in form [x y]';...		'Map size must be in form [x y]'}; [msgs_nro, value, Handle] = msize_ok('EditText1'); if msgs_nro > 0   errordlg({msgs{msgs_nro}},'Incorrect map size!');   temp = num2str(STOPOLINIT.msize);   temp = strcat('[',temp,']');   set(Handle,'String',temp);	   return; end STOPOLINIT.msize = value; Handle = findobj(gcbf,'Tag','EditText2'); set(Handle,'String','');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%				%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     END OF INITIALIZATION	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%				%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%				%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     START OF TRAINING		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%				%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%	function  [] = def_train()global SOTHERS ALGORITHM MAP NEWST DATA STRAIN1 STRAIN2 MAPSAVED;tlen_type = SOTHERS.length_type;sample_order = SOTHERS.oder;	tracking = SOTHERS.tracking;test = str2num(tracking);Handle = findobj(gcbf,'Tag','Radiobutton1');tempval = get(Handle,'Value');if strcmp(ALGORITHM,'seq')    if tempval ~= 1       [MAP NEWST] = som_seqtrain(MAP,DATA,'train',STRAIN1,tlen_type,sample_order);    end    if test > 1	figure;	set(gcf,'Name',MAP.name);	 set(gcf,'NumberTitle','off');    end    [NEWMAP NEWST] = som_seqtrain(MAP,DATA,'train',STRAIN2,'tracking',test,tlen_type,sample_order); else    if tempval ~= 1       [MAP NEWST] = som_batchtrain(MAP,DATA,'train',STRAIN1);    end    if test > 1       figure;       set(gcf,'Name',MAP.name);       set(gcf,'NumberTitle','off');    end        [NEWMAP NEWST] = som_batchtrain(MAP,DATA,'train',STRAIN2,'tracking',test);endMAP = NEWMAP;clear MAPSAVED;	Handle = findobj(gcbf,'Tag','StaticText10');set(Handle,'String','Status <map trained>');Handle = findobj(gcbf,'Tag','Load/SaveSubuimenu1');set(Handle,'Enable','on');		Handle = findobj(gcbf,'Tag','Load/SaveSave mapuimenu1');set(Handle,'Enable','on');	 Handle = findobj(gcbf,'Tag','&Load/SaveSave mapSave in workspaceuimenu1');set(Handle,'Enable','on');Handle = findobj(gcbf,'Tag','&ToolsSubuimenu1');set(Handle,'Enable','on');Handle = findobj(gcbf,'Tag','&Init&TrainChange initialization valuesuimenu1');set(Handle,'Enable','off');Handle = findobj(gcbf,'Tag','&Init&TrainTrain1');set(Handle,'Enable','off');		function [] = change_def()global ALGORITHM STRAIN1 DATA; ButtonName = questdlg('Select training type!',...	'Change values.',...	'Batch','Sequential','Cancel',...        'Batch');	if strcmp(ButtonName,'Sequential')   Handle = findobj(gcbf,'Visible','off');   set(Handle,'Visible','on');   ALGORITHM = 'seq';   Handle = findobj(gcf,'Tag','StaticText9');   set(Handle,'String','training type: sequential');   new_para2_2;   Handle = findobj(gcf,'Tag','StaticText1');   set(Handle,'String','Change parameters for sequential training');   Handle = findobj(gcf,'Enable','off');   set(Handle,'Enable','on');   Handle = findobj(gcf,'Visible','off');   set(Handle,'Visible','on');elseif strcmp(ButtonName,'Batch')   ALGORITHM = 'batch';   Handle = findobj(gcbf,'Tag','StaticText26');   set(Handle,'Visible','off');   Handle = findobj(gcbf,'Tag','StaticText27');   set(Handle,'Visible','off');   Handle = findobj(gcf,'Tag','StaticText9');   set(Handle,'String','training type: batch');   Handle = findobj(gcf,'Tag','StaticText12');   set(Handle,'Visible','off');   Handle = findobj(gcf,'Tag','StaticText28');   set(Handle,'Visible','off');   Handle = findobj(gcf,'Tag','StaticText14');   set(Handle,'Visible','off');   new_para2_2;	   Handle = findobj(gcf,'Tag','StaticText1');

⌨️ 快捷键说明

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