Mercurial > hg > camir-aes2014
view toolboxes/MIRtoolbox1.3.2/somtoolbox/som_show_gui.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line source
function fig = som_show_gui(input,varargin) %SOM_SHOW_GUI A GUI for using SOM_SHOW and associated functions. % % h = som_show_gui(sM); % % Input and output arguments: % sM (struct) a map struct: the SOM to visualize % h (scalar) a handle to the GUI figure % % This is a graphical user interface to make the usage of SOM_SHOW and % associated functions somewhat easier for beginning users of the SOM % Toolbox. % % How to use the GUI: % 1. Start the GUI by giving command som_show_gui(sM); % 2. Build a list of visualization planes using the buttons % ('Add components', etc.) on the right % - the options associated with each of the planes can be % modified by selecting a plane from the list, and pressing % the 'Plane options' button % - the controls below the list apply to all planes % - the subplot grid size can be controlled using the 'subplots' % field on top right corner, e.g. '4 3' to get 4 times 3 grid % 3. To visualize the planes, press the 'Visualize' button on the bottom. % 4. To add hits, labels, trajectories (or comets) to the % visualization, or clear them, or reset the colorbars, % see the tools available from the 'Tools' menu. % - the arguments to those tools are either given in the tool, % or read from the workspace ('Select variable' buttons) % - the tools always apply to the latest figure created % by the GUI % 5. To quit, press the 'Close' button on the bottom. % % Known bugs: % - Especially when using the adding tools, you can easily % give arguments which do not fit each other, and this % results in a lengthy (and often cryptic) error message. % In such a case, check the arguments you are giving to see % if there's something wrong with them. See function % SOM_SHOW_ADD for more information on how the options % can be set. % - The default values in the adding tools may not be % very reasonable: you may have to try out different % values for e.g. markersize before getting the kind of % result you want. % % SOM_SHOW_GUI has two subfunctions: VIS_SHOW_GUI_COMP and % VIS_SHOW_GUI_TOOL. These are for internal use of SOM_SHOW_GUI. % % See also SOM_SHOW, SOM_SHOW_ADD, SOM_SHOW_CLEAR, SOM_RECOLORBAR. % Copyright (c) 2000 by Roman Feldman and Juha Vesanto % Contributed to SOM Toolbox on August 22nd, 2000 % http://www.cis.hut.fi/projects/somtoolbox/ % Version 2.0beta roman 160800 juuso 220800 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % MAIN % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% warning off; if (nargin < 1) errordlg({'Make sure you have SOM as input argument'; ''; ... 'example: som_show_gui(sMap)'},'Error in SOM_VIS: input arguments'); return end if isstruct(input) fig_h = create_main_gui(input); if (nargout > 0) fig = fig_h; end return; elseif ischar(input) action = lower(input); % udata = get(varargin{1},'UserData'); plot_array = udata.plot_array; l = length(plot_array); list1_h = udata.h(1); if (strcmp(action,'')) errordlg('','Error in SOM_VIS: input arguments'); return; %%%%%%%%%%%%%%%%%%%% % add_selected_comp % elseif (strcmp(action,'add_selected_comp')) if isempty(plot_array(1).string), tmp = 1; else tmp = l+1; end [sel,ok] = listdlg('ListString',udata.sM.comp_names,... 'Name','Component selection',... 'PromptString','Select components to add'); if ok & ~isempty(sel), for i=1:length(sel), plot_array(tmp+i-1).string = udata.sM.comp_names{sel(i)}; plot_array(tmp+i-1).args = {'comp' sel(i)}; udata.property{tmp+i-1} = {0}; end set(list1_h,'Value',tmp+i-1, ... 'String',{plot_array(:).string}); end udata.plot_array = plot_array; set(varargin{1},'UserData',udata); %%%%%%%%%%%%%%%%%%%% % add_all_comps % elseif (strcmp(action,'add_all_comps')) if (strcmp(plot_array(1).string,'')) tmp = 1; else tmp = l+1; end indx = length(udata.sM.comp_names); for (i=1:indx) plot_array(tmp+i-1).string = udata.sM.comp_names{i}; plot_array(tmp+i-1).args = {'comp' i}; udata.property{tmp+i-1} = {0}; end % update list set(list1_h,'Value',tmp+indx-1, ... 'String',{plot_array(:).string}); udata.plot_array = plot_array; set(varargin{1},'UserData',udata); %%%%%%%%%%%%%%%%%%%% % add_u_matrix % elseif (strcmp(action,'add_u_matrix')) if (strcmp(plot_array(1).string,'')) tmp = 1; else tmp = l+1; end plot_array(tmp).string = 'U-matrix'; plot_array(tmp).args = {'umat' 'all'}; udata.property{tmp} = {0 'U-matrix' 1:length(udata.sM.comp_names)}; % update list set(list1_h,'Value',tmp, ... 'String',{plot_array(:).string}); udata.plot_array = plot_array; set(varargin{1},'UserData',udata); %%%%%%%%%%%%%%%%%%%% % add_colorplane % elseif (strcmp(action,'add_colorplane')) if (strcmp(plot_array(1).string,'')) tmp = 1; else tmp = l+1; end plot_array(tmp).string = 'color plane'; c = som_colorcode(udata.sM); plot_array(tmp).args = {'color' c}; udata.property{tmp} = {0 'Color code' {'rgb1' 'rgb2' 'rgb3' 'rgb4' 'hsv' '-variable-'} 1}; % update list set(list1_h,'Value',tmp, ... 'String',{plot_array(:).string}); udata.plot_array = plot_array; set(varargin{1},'UserData',udata); %%%%%%%%%%%%%%%%%%%% % add_empty % elseif (strcmp(action,'add_empty')) if (strcmp(plot_array(1).string,'')) tmp = 1; else tmp = l+1; end plot_array(tmp).string = 'empty plane'; plot_array(tmp).args = {'empty' ''}; udata.property{tmp} = {''}; % update list set(list1_h,'Value',tmp, ... 'String',{plot_array(:).string}); udata.plot_array = plot_array; set(varargin{1},'UserData',udata); %%%%%%%%%%%%%%%%%%%% % remove % elseif (strcmp(action,'remove')) rm_indx = get(list1_h,'Value'); rm_l = length(rm_indx); % rebuild array incl_inds = setdiff(1:length(plot_array),rm_indx); if isempty(incl_inds), clear plot_array; plot_array(1).args = {}; plot_array(1).string = ''; udata.property = {}; udata.property{1} = {}; else plot_array = plot_array(incl_inds); udata.property = udata.property(incl_inds); end set(list1_h,'Value',length(plot_array), ... 'String',{plot_array(:).string}); udata.plot_array = plot_array; set(varargin{1},'UserData',udata); %%%%%%%%%%%%%%%%%%%% % remove_all % elseif (strcmp(action,'remove_all')) plot_array = []; plot_array(1).args = {}; plot_array(1).string = ''; udata.property = {}; set(list1_h,'Value',1, ... 'String',{plot_array(:).string}); udata.plot_array = plot_array; set(varargin{1},'UserData',udata); %%%%%%%%%%%%%%%%%%%% % more_options % elseif (strcmp(action,'more_options')) vis_show_gui_comp(varargin{1},get(list1_h,'Value'),'init'); %%%%%%%%%%%%%%%%%%%% % close % elseif (strcmp(action,'close')) close(varargin{1}); %%%%%%%%%%%%%%%%%%%% % visualize % elseif (strcmp(action,'visualize')) %% s = {k k.^2}; plot(s{:}); current_fig = varargin{1}; figure; args = [{udata.sM} plot_array(:).args]; % edge tmp = get(udata.h(2),'UserData'); i = get(udata.h(2),'Value'); args = [args {'edge' tmp{i}}]; % bar tmp = get(udata.h(3),'UserData'); i = get(udata.h(3),'Value'); args = [args {'bar' tmp{i}}]; % norm tmp = get(udata.h(4),'UserData'); i = get(udata.h(4),'Value'); args = [args {'norm' tmp{i}}]; % size tmp = get(udata.h(5),'String'); args = [args {'size' eval(tmp)}]; % colormap tmp = get(udata.h(6),'String'); if ~isempty(tmp) args = [args {'colormap' eval(tmp)}]; end % footnote tmp = get(udata.h(7),'String'); args = [args {'footnote' tmp}]; % subplots tmp = get(udata.h(8),'String'); if ~(strcmp(tmp,'default') | isempty(tmp)) tmp2 = sscanf(tmp,'%i %i'); if length(tmp2)<2, tmp2 = sscanf(tmp,'%ix%i'); end if length(tmp2)<2, tmp = eval(tmp); else tmp = tmp2'; end if length(tmp)<2, tmp(2) = 1; end if tmp(1)*tmp(2)<length(get(udata.h(1),'string')), close(varargin{1}); errordlg('Too small subplot size', ... 'Error in SOM_VIS: subplot size'); return; end args = [args {'subplots' tmp}]; end som_show(args{:}); % udata.vis_h = varargin{1}; % first refresh plot info udata.vis_h = setdiff( ... udata.vis_h, ... setdiff(udata.vis_h,get(0,'children'))); udata.vis_h = [udata.vis_h gcf]; set(current_fig,'UserData',udata); else ; end else errordlg({'Make sure you have SOM as input argument'; ''; ... 'example: som_show_gui(sMap)'},'Error in SOM_VIS: input arguments'); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ---------------------- SUBFUNCTIONS ----------------------- % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % CREATE_MAIN_GUI % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function fig_h = create_main_gui(sM) oldFigNumber=watchon; % init variables FIGURENAME = 'SOM_SHOW_GUI'; plot_array = []; plot_array(1).args = {}; plot_array(1).string = ''; % colors fig_color = [0.8 0.8 0.8]; bg_color1 = [0.701960784313725 0.701960784313725 0.701960784313725]; bg_color2 = [0.9 0.9 0.9]; %%%% positions %%%%% %--------- figure fig_i = [0.02 0.25]; fig_s = [0.24 0.55]; %--------- ue = 0.02; th = 0.03; hint_text_pos = [0.05 0.94 0.8 th]; big_frame_pos = [ue 0.38 (1-2*ue) 0.56]; planes_listbox_text_pos = [0.07 0.87 0.3 th]; planes_listbox_pos = [(ue+0.03) 0.395 0.46 0.47]; subplots_text_pos = [0.53 0.885 0.2 th]; subplots_pos = [0.73 0.88 0.22 0.05]; ah = 0.045; d = (planes_listbox_pos(4) - 10*ah)/7; add_components_pos = [0.53 (sum(planes_listbox_pos([2 4]))-ah) 0.42 ah]; tmp = add_components_pos(2)-(d+ah); add_all_components_pos = [0.53 tmp 0.42 ah]; tmp = add_all_components_pos(2)-(d+ah); add_u_matrix_pos = [0.53 tmp 0.42 ah]; tmp = add_u_matrix_pos(2)-(d+ah); add_colorplane_pos = [0.53 tmp 0.42 ah]; tmp = add_colorplane_pos(2)-(d+ah); add_empty_pos = [0.53 tmp 0.42 ah]; tmp = add_empty_pos(2)-2*(d+ah)+d; remove_pos = [0.53 tmp 0.42 ah]; tmp = remove_pos(2)-(d+ah); remove_all_pos = [0.53 tmp 0.42 ah]; tmp = remove_all_pos(2)-2*(d+ah)+d; plane_options_pos = [0.53 tmp 0.42 ah]; ph = 0.041; dd = (ph-th)/2; tmp = big_frame_pos(2) - (planes_listbox_pos(2)-big_frame_pos(2)) - ph; ie1 = 0.25; tw = 0.21; iw = 0.28; unit_edges_text_pos = [ue (tmp+dd) tw th]; unit_edges_pos = [ie1 tmp iw ph]; tmp = unit_edges_pos(2)-(d+ph) - d; unit_sizes_text_pos = [ue (tmp+dd) tw th]; unit_sizes_pos = [ie1 tmp iw ph]; tmp = unit_sizes_pos(2)-(d+ph) - d; colorbar_dir_text_pos = [ue (tmp+dd) tw th]; colorbar_dir_pos = [ie1 tmp iw ph]; tmp2 = sum(colorbar_dir_pos([1 3])); colorbar_norm_text_pos = [(tmp2) (tmp+dd) 0.11 th]; colorbar_norm_pos = [(1-ue-(iw+0.06)) tmp (iw+0.06) ph]; tmp = colorbar_norm_pos(2)-(d+ph) - d; colormap_text_pos = [ue (tmp+dd) tw th]; colormap_pos = [ie1 tmp iw ph]; tmp = colormap_pos(2)-(d+ph) - d; footnote_text_pos = [ue (tmp+dd) tw th]; footnote_pos = [ie1 tmp (1-ue-ie1) ph]; tmp = planes_listbox_pos(2)-big_frame_pos(2); tmp2 = ah+2*tmp; little_frame_pos = [ue tmp (1-2*ue) tmp2]; tmp2 = little_frame_pos(2)+tmp; ddd = 0.1; bw = (little_frame_pos(3)-2*0.03-ddd)/2; visualize_pos = [(ue+0.03) tmp2 bw ah]; close_pos = [(sum(visualize_pos([1 3]))+ddd) tmp2 bw ah]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % main figure % fig_h = figure( ... 'Units','normalized', ... 'Color',fig_color, ... 'PaperPosition',[18 180 576 432], ... 'PaperType','A4', ... 'PaperUnits','normalized', ... 'Position',[fig_i fig_s], ... 'ToolBar','none', ... 'NumberTitle','off', ... 'Name',FIGURENAME, ... 'Visible','off'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % hint text % uicontrol( ... 'Units','normalized', ... 'BackgroundColor',fig_color, ... 'HorizontalAlignment','left', ... 'Position',hint_text_pos, ... 'String','Add planes and then visualize', ... 'Style','text'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % planes listbox % uicontrol( ... 'Units','normalized', ... 'Position',big_frame_pos, ... 'Style','frame'); uicontrol( ... 'Units','normalized', ... 'BackgroundColor',bg_color1, ... 'HorizontalAlignment','left', ... 'Position',planes_listbox_text_pos, ... 'String','Planes', ... 'Style','text'); list1_h = uicontrol( ... 'Units','normalized', ... 'BackgroundColor',bg_color2, ... 'Position',planes_listbox_pos, ... 'String',{plot_array(:).string}, ... 'Style','listbox', ... 'Max',2, ... 'Value',1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % edit subplots % uicontrol( ... 'Units','normalized', ... 'BackgroundColor',bg_color1, ... 'HorizontalAlignment','center', ... 'Position',subplots_text_pos, ... 'String','subplots', ... 'Style','text'); edit4_h = uicontrol( ... 'Units','normalized', ... 'BackgroundColor',bg_color2, ... 'Position',subplots_pos, ... 'FontSize',14, ... 'String','', ... 'Style','edit'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % pushbutton 'Add components' % uicontrol( ... 'Units','normalized', ... 'BackgroundColor',bg_color1, ... 'HorizontalAlignment','left', ... 'Position',add_components_pos, ... 'String',' Add components', ... 'Callback',['som_show_gui(''add_selected_comp'',' mat2str(gcf) ')']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % pushbutton 'Add all components' % uicontrol( ... 'Units','normalized', ... 'HorizontalAlignment','left', ... 'Position',add_all_components_pos, ... 'String',' Add all components', ... 'Callback',['som_show_gui(''add_all_comps'',' mat2str(gcf) ')']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % pushbutton 'Add U-matrix' % uicontrol( ... 'Units','normalized', ... 'HorizontalAlignment','left', ... 'Position',add_u_matrix_pos, ... 'String',' Add U-matrix', ... 'Callback',['som_show_gui(''add_u_matrix'',' mat2str(gcf) ')']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % pushbutton 'Add colorplane' % uicontrol( ... 'Units','normalized', ... 'HorizontalAlignment','left', ... 'Position',add_colorplane_pos, ... 'String',' Add colorplane', ... 'Callback',['som_show_gui(''add_colorplane'',' mat2str(gcf) ')']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % pushbutton 'Add empty' % uicontrol( ... 'Units','normalized', ... 'HorizontalAlignment','left', ... 'Position',add_empty_pos, ... 'String',' Add empty', ... 'Callback',['som_show_gui(''add_empty'',' mat2str(gcf) ')']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % pushbutton 'Remove' % uicontrol( ... 'Units','normalized', ... 'HorizontalAlignment','left', ... 'Position',remove_pos, ... 'String',' Remove', ... 'Callback',['som_show_gui(''remove'',' mat2str(gcf) ')']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % creat pushbutton 'Remove all' % uicontrol( ... 'Units','normalized', ... 'BackgroundColor',bg_color1, ... 'HorizontalAlignment','left', ... 'Position',remove_all_pos, ... 'String',' Remove all', ... 'Callback',['som_show_gui(''remove_all'',' mat2str(gcf) ')']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % pushbutton 'Plane options' % uicontrol( ... 'Units','normalized', ... 'Position',plane_options_pos, ... 'String',' Plane options', ... 'Callback',['som_show_gui(''more_options'',' mat2str(gcf) ')']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % popupmenu unitedges % uicontrol( ... 'Units','normalized', ... 'BackgroundColor',fig_color, ... 'HorizontalAlignment','left', ... 'Position',unit_edges_text_pos, ... 'String','unit edges are', ... 'Style','text'); popup1_h = uicontrol( ... 'Units','normalized', ... 'Max',2, ... 'Min',1, ... 'Position',unit_edges_pos, ... 'UserData',{'off' 'on'}, ... 'String',{'off' 'on'}, ... 'Style','popupmenu', ... 'Value',1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % unit sizes edit % uicontrol( ... 'Units','normalized', ... 'BackgroundColor',fig_color, ... 'HorizontalAlignment','left', ... 'Position',unit_sizes_text_pos, ... 'String','unit sizes', ... 'Style','text'); edit1_h = uicontrol( ... 'Units','normalized', ... 'BackgroundColor',bg_color2, ... 'Position',unit_sizes_pos, ... 'FontSize',12, ... 'String','1', ... 'Style','edit'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % popupmenu colorbardir % uicontrol( ... 'Units','normalized', ... 'BackgroundColor',fig_color, ... 'HorizontalAlignment','left', ... 'Position',colorbar_dir_text_pos, ... 'String','colorbar is', ... 'Style','text'); popup2_h = uicontrol( ... 'Units','normalized', ... 'Max',3, ... 'Min',1, ... 'Position',colorbar_dir_pos, ... 'UserData', {'vert' 'horiz' 'none'}, ... 'String','vert| horiz| none', ... 'Style','popupmenu', ... 'Value',1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % popupmenu colorbarnorm % uicontrol( ... 'Units','normalized', ... 'BackgroundColor',fig_color, ... 'HorizontalAlignment','left', ... 'Position',colorbar_norm_text_pos, ... 'String',' and ', ... 'Style','text'); popup3_h = uicontrol( ... 'Units','normalized', ... 'Max',2, ... 'Min',1, ... 'Position',colorbar_norm_pos, ... 'UserData', {'d' 'n'}, ... 'String',{'denormalized','normalized'}, ... 'Style','popupmenu', ... 'Value',1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % colormap edittext % uicontrol( ... 'Units','normalized', ... 'BackgroundColor',fig_color, ... 'HorizontalAlignment','left', ... 'Position',colormap_text_pos, ... 'String','colormap', ... 'Style','text'); edit2_h = uicontrol( ... 'Units','normalized', ... 'BackgroundColor',bg_color2, ... 'Position',colormap_pos, ... 'FontSize',12, ... 'String','', ... 'Style','edit'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % footnote edittext % uicontrol( ... 'Units','normalized', ... 'BackgroundColor',fig_color, ... 'HorizontalAlignment','left', ... 'Position',footnote_text_pos, ... 'String','footnote', ... 'Style','text'); edit3_h = uicontrol( ... 'Units','normalized', ... 'BackgroundColor',bg_color2, ... 'Position',footnote_pos, ... 'FontSize',12, ... 'String',sM.name, ... 'Style','edit'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % pushbutton 'Visualize' % uicontrol( ... 'Units','normalized', ... 'Position',little_frame_pos, ... 'Style','frame'); uicontrol( ... 'Units','normalized', ... 'Position',visualize_pos, ... 'String','Visualize', ... 'Callback',['som_show_gui(''visualize'',' mat2str(gcf) ')']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % pushbutton 'Close' % uicontrol( ... 'Units','normalized', ... 'BackgroundColor',bg_color1, ... 'Position',close_pos, ... 'String','Close', ... 'Callback',['som_show_gui(''close'',' mat2str(gcf) ')']); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % menus % uimenu('Parent',fig_h','Label',' ','Enable','off'); m = uimenu('Parent',fig_h,'Label','Tools'); a = uimenu('Parent',m,'Label','Add'); s = strcat('vis_show_gui_tool(',mat2str(gcf),',''add_label'')'); uimenu('Parent',a,'Label','label','Callback',s); s = strcat('vis_show_gui_tool(',mat2str(gcf),',''add_hit'')'); uimenu('Parent',a,'Label','hit','Callback',s); s = strcat('vis_show_gui_tool(',mat2str(gcf),',''add_traj'')'); uimenu('Parent',a,'Label','traj','Callback',s); s = strcat('vis_show_gui_tool(',mat2str(gcf),',''add_comet'')'); uimenu('Parent',a,'Label','comet','Callback',s); s = ['vis_show_gui_tool(',mat2str(gcf),',''clear'')']; c = uimenu('Parent',m,'Label','Clear','Separator','on','callback',s); s = strcat('vis_show_gui_tool(',mat2str(gcf),',''recolorbar'')'); r = uimenu('Parent',m,'Label','Recolorbar','Separator','on', ... 'Callback',s); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % end % ud.sM = sM; ud.plot_array = plot_array; ud.property = {}; ud.vis_h = []; ud.h = [list1_h popup1_h popup2_h popup3_h ... edit1_h edit2_h edit3_h edit4_h]; watchoff(oldFigNumber); set(fig_h,'Visible','on', ... 'UserData', ud, ... 'handlevisibility','off');