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

📄 preprocess.m

📁 很全的som工具箱 四个demo可为初学者提够帮助
💻 M
📖 第 1 页 / 共 5 页
字号:
  set(pre_h,'UserData',preh_udata);end man_h=findobj(get(0,'Children'),'Tag','Management');if ~isempty(man_h)  figure(man_h);  return;endh0 = figure('BackingStore','off', ...	'Color',[0.8 0.8 0.8], ...	'Name','Data Set Management', ...	'PaperPosition',[18 180 576 432], ...	'PaperUnits','points', ...	'Position',[753 523 324 470], ...	'RendererMode','manual', ...	'Tag','Management');h1 = uicontrol('Parent',h0, ...	'Units','normalized', ...	'BackgroundColor',[1 1 1], ...	'FontWeight','demi', ...	'HorizontalAlignment','left', ...	'ListboxTop',0, ...	'Max',2, ...	'Position',[0.02777777777777778 0.0723404255319149 0.7716049382716049 0.1914893617021277], ...	'String',' ', ...	'Style','edit', ...	'Tag','EditText1');data.new_c_name_h = h1;h1 = uicontrol('Parent',h0, ...	'Callback','preprocess rename comp',...	'Units','normalized', ...	'FontSize',6, ...	'FontWeight','demi', ...	'ListboxTop',0, ...	'Position',[0.8240740740740741 0.2106382978723404 0.154320987654321 0.05319148936170213], ...	'String','RENAME', ...	'Tag','Pushbutton1');h1 = uicontrol('Parent',h0, ...	'Callback','preprocess close_sD',...	'Units','normalized', ...	'FontWeight','demi', ...	'ListboxTop',0, ...	'Position',[0.8240740740740741 0.01914893617021277 0.154320987654321 0.05319148936170213], ...	'String','CLOSE', ...	'Tag','Pushbutton2');h1 = uicontrol('Parent',h0, ...	'Units','normalized', ...	'BackgroundColor',[0.8 0.8 0.8], ...	'FontWeight','demi', ...	'HorizontalAlignment','left', ...	'ListboxTop',0, ...	'Position',[0.02777777777777778 0.2680851063829787 0.345679012345679 0.02978723404255319], ...	'String','COMPONENTS:', ...	'Style','text', ...	'Tag','StaticText1');h1 = uicontrol('Parent',h0, ...	'Units','normalized', ...	'BackgroundColor',[1 1 1], ...	'HorizontalAlignment','left', ...	'Position',[0.02777777777777778 0.3170212765957447 0.3549382716049382 0.5319148936170213], ...	'String',' ', ...	'Style','listbox', ...	'Tag','Listbox1', ...	'Value',1);data.sets_h=h1;h1 = uicontrol('Parent',h0, ...	'Units','normalized', ...	'BackgroundColor',[1 1 1], ...	'HorizontalAlignment','left', ...	'Position',[0.6234567901234568 0.3170212765957447 0.3549382716049382 0.5319148936170213], ...	'String',' ', ...	'Style','listbox', ...	'Tag','Listbox2', ...	'Value',1);data.variables_h = h1;h1 = uicontrol('Parent',h0, ...	'Callback','preprocess export',...	'Units','normalized', ...	'FontWeight','demi', ...	'ListboxTop',0, ...	'Position',[0.4259259259259259 0.551063829787234 0.154320987654321 0.0425531914893617], ...	'String','->', ...	'Tag','Pushbutton4');h1 = uicontrol('Parent',h0, ...	'Callback','preprocess import',...	'Units','normalized', ...	'FontWeight','demi', ...	'ListboxTop',0, ...	'Position',[0.4259259259259259 0.625531914893617 0.154320987654321 0.0425531914893617], ...	'String','<-', ...	'Tag','Pushbutton3');h1 = uicontrol('Parent',h0, ...	'Units','normalized', ...	'BackgroundColor',[0.8 0.8 0.8], ...	'FontWeight','demi', ...	'HorizontalAlignment','left', ...	'ListboxTop',0, ...	'Position',[0.02777777777777778 0.8531914893617022 0.2993827160493827 0.02978723404255319], ...	'String','DATA SETS', ...	'Style','text', ...	'Tag','StaticText2');h1 = uicontrol('Parent',h0, ...	'Units','normalized', ...	'BackgroundColor',[0.8 0.8 0.8], ...	'FontWeight','demi', ...	'HorizontalAlignment','left', ...	'ListboxTop',0, ...	'Position',[0.6234567901234568 0.8531914893617022 0.2561728395061728 0.02978723404255319], ...	'String','WORKSPACE', ...	'Style','text', ...	'Tag','StaticText3');h1 = uicontrol('Parent',h0, ...	'Callback','preprocess rename set',...	'Units','normalized', ...	'BackgroundColor',[1 1 1], ...	'HorizontalAlignment','left', ...	'ListboxTop',0, ...	'Position',[0.1820987654320987 0.9127659574468086 0.7808641975308641 0.0425531914893617], ...	'Style','edit', ...	'Tag','EditText2');data.new_name_h = h1;h1 = uicontrol('Parent',h0, ...	'Units','normalized', ...	'BackgroundColor',[0.8 0.8 0.8], ...	'FontWeight','demi', ...	'HorizontalAlignment','left', ...	'ListboxTop',0, ...	'Position',[0.02777777777777778 0.9127659574468086 0.1388888888888889 0.02978723404255319], ...	'String','NAME:', ...	'Style','text', ...	'Tag','StaticText4');ui_h=uimenu('Label','&Tools');uimenu(ui_h,'Label','Copy','Callback','preprocess copy_delete copy');uimenu(ui_h,'Label','Delete','Callback','preprocess copy_delete delete');uimenu(ui_h,'Label','Refresh','Callback','preprocess refresh');set(gcf,'UserData',data);set_var_names;sD_names;sD_stats;%%% Subfunction: set_var_names %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function set_var_namesvariables_h=getfield(get(gcf,'UserData'),'variables_h');value=get(variables_h,'Value');len=evalin('base','length(who)');names=cell(len,1);for i=1:len  string=cat(2,'getfield(who,{',num2str(i),'})');  names(i)=evalin('base',string);endset(variables_h,'String',names);if(value > length(names))  set(variables_h,'Value',1);end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Subfunction: sD_names %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function sD_namessets_h=getfield(get(gcf,'UserData'),'sets_h');pre_h=findobj(get(0,'Children'),'Tag','Preprocess');sD_set = getfield(get(pre_h,'UserData'),'sD_set');for i=1:length(sD_set)  names{i,1}=cat(2,sprintf('#%d: ',i),sD_set(i).name);endset(sets_h,'String',names);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Subfunction: sD_stats %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function sD_statsman_h=findobj(get(0,'Children'),'Tag','Management');c_names_h=getfield(get(man_h,'UserData'),'new_c_name_h');sD_name_h=getfield(get(man_h,'UserData'),'new_name_h');pre_h=findobj(get(0,'Children'),'Tag','Preprocess');INDEX=getfield(getfield(get(pre_h,'UserData'),'sData'),'INDEX');MODIFIED=getfield(getfield(get(pre_h,'UserData'),'sData'),'MODIFIED');value=get(getfield(get(man_h,'UserData'),'sets_h'),'Value'); if value==INDEX  data=get(pre_h,'UserData');  sData=rmfield(data.sData,[{'INDEX'};{'MODIFIED'}]);  data.sD_set(INDEX)=sData;  data.sData.MODIFIED=0;  set(pre_h,'UserData',data);end      sData=getfield(getfield(get(pre_h,'UserData'),'sD_set'),{value});string1=[{sData.name}];set(sD_name_h,'String',string1);set(c_names_h,'String',sData.comp_names);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Subfunction: import %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function import(varargin)if nargin==1  LOG=1;  man_h=findobj(get(0,'Children'),'Tag','Management');  set(0,'CurrentFigure',man_h);  name=varargin;else   LOG=0;endvariables_h=getfield(get(gcf,'UserData'),'variables_h');pre_h=findobj(get(0,'Children'),'Tag','Preprocess');if ~LOG  name=getfield(get(variables_h,'String'),{get(variables_h,'Value')});enderrstr='Data to be imported must be real matrix or ''som_data_struct''.';new_sD=evalin('base',name{1});if isempty(pre_h)  errordlg('''Preprocess'' -figure does not exist. Terminating program...');  close_preprocess;  return;endif isstr(new_sD) | (~isstruct(new_sD) & ~isreal(new_sD))  errordlg(errstr);  return;elseif isstruct(new_sD) & length(new_sD) > 1  errordlg(errstr)  return;elseif ~isstruct(new_sD)  new_sD=som_data_struct(new_sD);  new_sD.name=name{1};endnew_sD_names=fieldnames(new_sD);right_names=fieldnames(som_data_struct(1));for i=1:length(new_sD_names)  if ~any(strcmp(new_sD_names(i),right_names));    errordlg(errstr);    return;  endenddata=get(pre_h,'UserData');data.sD_set(length(data.sD_set) + 1)=new_sD;if ~LOG  data.LOG{length(data.LOG)+1}='% Import a data set from the workspace.';  data.LOG{length(data.LOG)+1}=cat(2,'preprocess(''import'',''',...                                    name{1},''');');endset(pre_h,'UserData',data);sD_names;sD_stats;old =gcf;set(0,'CurrentFigure',pre_h);set_sD_stats;set(0,'CurrentFigure',old);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Subfunction: export %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function export(varargin)if nargin == 1  LOG=1;  man_h=findobj(get(0,'Children'),'Tag','Management');  set(0,'CurrentFigure',man_h);  index=str2num(varargin{1});  else  LOG=0;endsets_h=getfield(get(gcf,'UserData'),'sets_h');pre_h=findobj(get(0,'Children'),'Tag','Preprocess');if ~LOG  index=get(sets_h,'Value');endif isempty(pre_h)  errordlg('''Preprocess''-figure does not exist. Terminating program...');  close(findobj(get(0,'Children'),'Tag','Management'));  close(findobj(get(0,'Children'),'Tag','PlotWin'));  return;endsData=getfield(getfield(get(pre_h,'UserData'),'sD_set'),{index});if ~isvalid_var_name({sData.name})  return;endassignin('base',sData.name,sData);disp(sprintf('Data set ''%s'' is set to the workspace.',sData.name));if ~LOG  data=get(pre_h,'UserData');  data.LOG{length(data.LOG)+1}='% Export a data set to the workspace.';  data.LOG{length(data.LOG)+1}=cat(2,'preprocess(''export'',''',...                                   num2str(index),''');');  set(pre_h,'UserData',data);endset_var_names;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Subfunction: rename %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function rename(arg)i=1;while i <= length(arg) & arg(i) ~= ' '  i=i+1;endarg2=arg(i+1:length(arg));arg=arg(1:i-1);if ~isempty(arg2)  LOG=1;  i=1;  if arg2(1) ~= '{'    while i <= length(arg2) & arg2(i) ~= ' '      i=i+1;    end    index=str2num(arg2(i+1:length(arg2)));    arg2=arg2(1:i-1);  else    while i <= length(arg2) & arg2(i) ~= '}'      i=i+1;    end    index=str2num(arg2(i+1:length(arg2)));    arg2=arg2(1:i);  endelse  LOG=0;endnew_name_h=getfield(get(gcf,'UserData'),'new_name_h');new_c_name_h=getfield(get(gcf,'UserData'),'new_c_name_h');pre_h=findobj(get(0,'Children'),'Tag','Preprocess');if isempty(pre_h)  errordlg('''Preprocess'' -figure does not exist. Terminating program...');  close_preprocess;  return;endswitch arg  case 'set'   if LOG     name={arg2};   else     name=get(new_name_h,'String');   end   if ~isempty(name{1}) & ~any(isspace(name{1}))     if ~isvalid_var_name(name)       sD_stats;       return;     end     if ~LOG       index=get(getfield(get(gcf,'UserData'),'sets_h'),'Value');     end     data=get(pre_h,'UserData');     tmp_set.name=name{1};             data.sD_set(index).name=name{1};     if data.sData.INDEX == index       data.sData.name=name{1};     end     if ~LOG       data.LOG{length(data.LOG)+1}='% Rename a data set.';       data.LOG{length(data.LOG)+1}=cat(2,'preprocess(''rename'',''set ',...                                                       name{1},' ',...                                                       num2str(index),...                                                       ''');');     end      set(pre_h,'UserData',data);     sD_names;     string=get(data.sD_set_h,'String');     string{index}=cat(2,sprintf('#%d: ',index),name{1});     set(data.sD_set_h,'String',string);     string=get(data.sD_name_h,'String');     string{1}=cat(2,'Name:   ',name{1});     if index==data.sData.INDEX       set(data.sD_name_h,'String',string);     end   else     sD_stats;   end  case 'comp'   if ~LOG     names=get(new_c_name_h,'String');     index=get(getfield(get(gcf,'UserData'),'sets_h'),'Value');   else     names=eval(arg2);   end   if check_cell_names(names)     data=get(pre_h,'UserData');     sData=data.sD_set(index);     if length(sData.comp_names)==length(names)       data.sD_set(index).comp_names=names;       if index == data.sData.INDEX         for i=1:length(names)           names{i}=cat(2,sprintf('#%d: ',i),names{i});         end         set(data.comp_names_h,'String',names);         set(data.sel_comp_h,'String',names);       end       if ~LOG         data.LOG{length(data.LOG)+1}='% Rename components.';         str='preprocess(''rename'',''comp {';         for i=1:length(names)-1           str=cat(2,str,'''''',names{i},''''',');         end         str=cat(2,str,'''''',names{length(names)},'''''} ',...                 num2str(index),''');');         data.LOG{length(data.LOG)+1}=str;       else         set(new_c_name_h,'String',names);       end       set(pre_h,'UserData',data);               else       errordlg('There are less components in data.');       sD_stats;       return;     end   else     sD_stats;     endend%%% Subfunction: check_cell_names %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function bool=check_cell_names(names)bool = 1;if isempty(names)  bool= 0;  return;

⌨️ 快捷键说明

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