www.gusucode.com > wavelet工具箱matlab源码程序 > wavelet/wmultisig1d/showpartsimidx.m
function varargout = showpartsimidx(varargin) % SHOWPARTSIMIDX MATLAB file for showpartsimidx.fig % Last Modified by GUIDE v2.5 16-Feb-2006 08:56:22 % % M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 26-Jan-2006. % Last Revision 11-Jul-2013. % Copyright 1995-2013 The MathWorks, Inc. % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @showpartsimidx_OpeningFcn, ... 'gui_OutputFcn', @showpartsimidx_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before showpartsimidx is made visible. function showpartsimidx_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % Choose default command line output for showpartsimidx handles.output = hObject; % Update handles structure guidata(hObject, handles); %%!!!!!!!!!!!!!!!!!!!!% % TOOL INITIALISATION % %%!!!!!!!!!!!!!!!!!!!!% Init_Tool(hObject,eventdata,handles,varargin{:}) % --- Outputs from this function are returned to the command line. function varargout = showpartsimidx_OutputFcn(hObject,eventdata,handles) %#ok<*INUSL> % varargout cell array for returning output args (see VARARGOUT); % Get default command line output from handles structure varargout{1} = handles.output; %-------------------------------------------------------------------------- function Pus_Close_Callback(hObject,eventdata,handles) %#ok<*DEFNU> fig = handles.output; callingFIG = wtbxappdata('get',fig,'callingFIG'); if ishandle(callingFIG) showparttool('Pus_ALL_IDX_Callback',fig,[],handles) else delete(fig); end %-------------------------------------------------------------------------- function Pop_INDICES_Callback(hObject,eventdata,handles) fig = handles.output; formatNUM = '%9.3f'; numIDX = get(hObject,'Value'); callingFIG = wtbxappdata('get',fig,'callingFIG'); if ishandle(callingFIG) figBUFFER = callingFIG; else figBUFFER = fig; end LNK_SIM_STRUCT = wtbxappdata('get',figBUFFER,'LNK_SIM_STRUCT'); idx_Names = fieldnames(LNK_SIM_STRUCT); idx_Names(1) = []; fn = idx_Names{numIDX}; tabIDX = LNK_SIM_STRUCT.(fn); % set(handles.Edi_TIT_GRA_SIM,'String',[fn ' Index']); set(handles.Pan_GRA_SIM,'Title',[' ' fn ' Index .']); %+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ txt_HDL = wtbxappdata('get',fig,'txt_HDL'); txt_IDX = txt_HDL{1}; nbPART = size(tabIDX,1); for j=1:nbPART for k=1:nbPART strTXT = num2str(tabIDX(j,k),formatNUM); set(txt_IDX(j,k),'String',strTXT); end end set(handles.Axe_INDICES,'YLim',[1-0.01,nbPART+0.01]) %+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ymax = max(max(tabIDX)); ymin = min(min(tabIDX)); ymax = ymax + 0.01*abs(ymax); ymin = ymin - 0.01*abs(ymin); axeCUR = handles.Axe_GRAPHIC; visAXE = get(axeCUR,'Visible'); Leg_lin_IDX = wtbxappdata('get',fig,'Leg_lin_IDX'); if isempty(Leg_lin_IDX) delete(allchild(axeCUR)) set(axeCUR,'NextPlot','Add') map = hsv(64); lin_IDX = zeros(1,nbPART); for j=1:nbPART col_LIN = map(j,:); lin_IDX(j) = plot(1:nbPART,tabIDX(j,:),'Color',col_LIN,... 'LineWidth',2,'Marker','s','MarkerSize',8,... 'MarkerFaceColor',col_LIN, ... 'Visible',visAXE,'Parent',axeCUR); end xlab = 'P'; xlab = [xlab(ones(1,nbPART),:), int2str((1:nbPART)')]; set(axeCUR,... 'XTick',(1:nbPART),'XTickLabel',xlab,... 'XLim',[1 nbPART],'YLim',[ymin ymax]); legendSTR = get(handles.Pop_SEL_PART,'String'); Leg_HDL = legend(axeCUR,legendSTR{2:end},'Location','EastOutside'); wtbxappdata('set',fig,'Leg_lin_IDX',{lin_IDX,Leg_HDL}); else [lin_IDX,Leg_HDL] = deal(Leg_lin_IDX{:}); for j=1:nbPART , set(lin_IDX(j),'YData',tabIDX(j,:)); end set(axeCUR,'XLim',[1 nbPART],'YLim',[ymin ymax]); end set(Leg_HDL,'Visible',visAXE); val = get(handles.Pop_SEL_PART,'Value')-1; set_Title(handles,val) Chk_GRID_Callback(handles.Chk_GRID,eventdata,handles) %+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ strTXT = num2str(tabIDX,formatNUM); L1 = size(strTXT,2); sep = '-'; sep = sep(:,ones(1,L1)); strTXT = [blanks(L1);blanks(L1);sep;strTXT;sep]; set(handles.Txt_SIM_VAL,'String',strTXT) %-------------------------------------------------------------------------- function Pop_FRM_DISP_Callback(hObject,eventdata,handles) val = get(hObject,'Value'); usr = get(hObject,'UserData'); if isequal(val,usr) , return; end set(hObject,'UserData',val); fig = get(hObject,'Parent'); posLocFig = wtbxappdata('get',fig,'posLocFig'); hdl_IN_TXT = findobj(handles.Axe_INDICES); stored = wtbxappdata('get',fig,'Leg_lin_IDX'); Leg_HDL = stored{2}; hdl_IN_GRA = [findobj(handles.Axe_GRAPHIC);Leg_HDL; handles.Pan_GRA]; switch val case {1,2,3} txt_HDL = wtbxappdata('get',fig,'txt_HDL'); txt_IDX = txt_HDL{1}; nbPART = size(txt_IDX,1); switch val case 1 txt_VIS = txt_IDX(:)'; txt_InVIS = []; case 2 txt_InVIS = []; for k = 1:nbPART , txt_InVIS = [txt_InVIS , txt_IDX(k+1:end,k)']; %#ok<*AGROW> end txt_VIS = setdiff(txt_IDX(:)' , txt_InVIS); case 3 txt_InVIS = []; for k = 1:nbPART , txt_InVIS = [txt_InVIS , txt_IDX(k,k+1:end)]; end txt_VIS = setdiff(txt_IDX(:)' , txt_InVIS); end txt_HDL{2} = txt_VIS; txt_HDL{3} = txt_InVIS; wtbxappdata('set',fig,'txt_HDL',txt_HDL); if ~isequal(posLocFig{2},0) , set(fig,'Position',posLocFig{1}); end set(hdl_IN_TXT,'Visible','On') hdl_NotVIS = [... handles.Txt_SIM_VAL,handles.Axe_INDICES, ... txt_InVIS,hdl_IN_GRA(:)']; set(hdl_NotVIS,'Visible','Off') case 4 if ~isequal(posLocFig{2},0) , set(fig,'Position',posLocFig{1}); end set(handles.Pop_SEL_PART,'Value',1); set(handles.Pop_HIG_PART,'Value',1); set([hdl_IN_TXT(:)',handles.Txt_SIM_VAL],'Visible','Off') set_Title(handles,0) set(hdl_IN_GRA,'Visible','On') Pop_COL_MAP_Callback(handles.Pop_COL_MAP,eventdata,handles) case 5 set([hdl_IN_TXT(:)',hdl_IN_GRA(:)'],'Visible','Off') pos = [0 0 1 1]; set(handles.Txt_SIM_VAL,'Position',pos,'Visible','On') ext = get(handles.Txt_SIM_VAL,'Extent'); if ext(3)>1 if isequal(posLocFig{2},0) pos = get(fig,'Position'); pos(3) = 1.2*pos(3)*ext(3); posLocFig{2} = pos; wtbxappdata('set',fig,'posLocFig',posLocFig); end set(fig,'Position',posLocFig{2}); end end %-------------------------------------------------------------------------- function Pus_ALL_Callback(hObject,eventdata,handles) fig = handles.output; showparttxt(fig,'IDX'); %-------------------------------------------------------------------------- function Chk_GRID_Callback(hObject,eventdata,handles) val = get(hObject,'Value'); switch val, case 0 , vis = 'Off'; case 1 , vis = 'On'; end set(handles.Axe_GRAPHIC,'XGrid',vis,'YGrid',vis); %-------------------------------------------------------------------------- function Pop_SEL_PART_Callback(hObject,eventdata,handles) val = get(hObject,'Value')-1; stored = wtbxappdata('get',hObject,'Leg_lin_IDX'); lin_IDX = stored{1}; leg_HDL = stored{2}; if val==0 set(lin_IDX,'Visible','On'); set(leg_HDL,'Visible','On') val = get(handles.Pop_HIG_PART,'Value')-1; else set(lin_IDX,'Visible','Off'); set(lin_IDX(val),'Visible','On'); end set_Title(handles,val); %-------------------------------------------------------------------------- function Pop_HIG_PART_Callback(hObject,eventdata,handles) val = get(hObject,'Value')-1; stored = wtbxappdata('get',hObject,'Leg_lin_IDX'); lin_IDX = stored{1}; set(lin_IDX,'LineWidth',2); usr = get(hObject,'UserData'); if ~isempty(usr) try set(usr{1},'Color',usr{2},'MarkerFaceColor',usr{3}); end %#ok<TRYNC> end if val~=0 lin_SEL = lin_IDX(val); col_SEL = get(lin_SEL,'Color'); col_MAR = get(lin_SEL,'MarkerFaceColor'); set(hObject,'UserData',{lin_SEL,col_SEL,col_MAR}); for k=1:4 set(lin_SEL,'LineWidth',2,... 'Color',col_SEL,'MarkerFaceColor',col_MAR); pause(0.2) set(lin_SEL,'LineWidth',3,'Color','k','MarkerFaceColor','k'); pause(0.3) end end if get(handles.Pop_SEL_PART,'Value')==1 , set_Title(handles,val); end %-------------------------------------------------------------------------- function Pop_COL_MAP_Callback(hObject,eventdata,handles) stored = wtbxappdata('get',hObject,'Leg_lin_IDX'); lin_IDX = stored{1}; nb_LIN = length(lin_IDX); val = get(hObject,'Value'); if val>1 lst = get(hObject,'String'); mapName = lst{val}; map = feval(mapName,255); map = map(10:10:end,:); else map = getscaledmap(get(lin_IDX(1),'Parent'),nb_LIN); end for j=1:length(lin_IDX) col_LIN = map(j,:); set(lin_IDX(j),'Color',col_LIN,'MarkerFaceColor',col_LIN); end usr = get(handles.Pop_HIG_PART,'UserData'); if ~isempty(usr) col_SEL = get(usr{1},'Color'); set(usr{1},'Color','k','MarkerFaceColor','k'); set(handles.Pop_HIG_PART,'UserData',{usr{1},col_SEL,col_SEL}); end %-------------------------------------------------------------------------- function Init_Tool(fig,eventdata,handles,varargin) wtranslate(mfilename,fig) posLocFig = get(fig,'Position'); if ishandle(varargin{1}) pus_SHOW = varargin{1}; callingFIG = gcbf; wtbxappdata('set',fig,'callingFIG',callingFIG); posCaller = get(callingFIG,'Position'); posLocFig(1) = posCaller(1) + 0.025; posLocFig(2) = posCaller(2)+(posCaller(4) - posLocFig(4))/2; set(fig,'Position',posLocFig,'UserData',pus_SHOW); TAB_Partitions = wtbxappdata('get',callingFIG,'TAB_Partitions'); nbPART = length(TAB_Partitions); else opt = varargin{1}; switch opt case 'part' [~,LNK_SIM_STRUCT] = partlnkandsim(varargin{2}); case 'sim' LNK_SIM_STRUCT = varargin{2}; end nbPART = size(LNK_SIM_STRUCT.Rand,2); wtbxappdata('set',fig,'LNK_SIM_STRUCT',LNK_SIM_STRUCT); end idx_Attrb = tplnksim; idx_Names = idx_Attrb(:,1); set(handles.Pop_INDICES,'String',idx_Names,'Value',1); num_STR = int2str((1:nbPART)'); Items = 'P'; Items = [Items(ones(nbPART,1),:) num_STR]; Items = num2cell(Items,2); Items = [getWavMSG('Wavelet:commongui:Str_All') ; Items]; set(handles.Pop_SEL_PART,'String',Items,'Value',1); Items{1} = 'None'; set(handles.Pop_HIG_PART,'String',Items,'Value',1); tickLAB = ' '; tickLAB = tickLAB(ones(nbPART,1),:); axeCUR = handles.Axe_INDICES; set(axeCUR,... 'XLim',[1,nbPART],'YLim',[1,nbPART], ... 'XTick',(1:nbPART),'YTick',(1:nbPART), ... 'XTickLabel',tickLAB,'YTickLabel',tickLAB,'Visible','Off'); cba_TEXT = ''; propTEXT = {... 'Parent',axeCUR,'Color','k',... 'FontSize',8,'FontWeight','bold',... 'HorizontalAlignment','Center','ButtonDownFcn',cba_TEXT ... }; oldUnits = get(axeCUR,'Units'); set(axeCUR,'Units','Pixels') pos = get(axeCUR,'Position'); pixXY = (nbPART-1)./ pos(3:4); set(axeCUR,'Units',oldUnits) xINI = 1-50*pixXY(1); yINI = 1-50*pixXY(2); pTXT_NUM = [propTEXT , 'EdgeColor','k','BackgroundColor',[1 1 0.7]]; for j=1:nbPART text(xINI,j,[' P' int2str(j)],pTXT_NUM{:}); text(j,yINI,[' P' int2str(j)],pTXT_NUM{:}); end pTXT_V = [propTEXT , 'EdgeColor','r','BackgroundColor',[1 0.8 1]]; pTXT_D = [propTEXT , 'EdgeColor','b','BackgroundColor',[0.8 0.8 1]]; txt_IDX = zeros(nbPART,nbPART); Col_LIN_V = [0.6 0.6 1]; Col_LIN_H = [1 0.6 0.6]; LW = 2; txt_LIN_V = zeros(1,nbPART); txt_LIN_H = zeros(1,nbPART); for j=1:nbPART txt_LIN_V(j) = line('XData',[j,j],'YData',[1,nbPART],... 'LineWidth',LW,'Color',Col_LIN_V,'Parent',axeCUR); txt_LIN_H(j) = line('YData',[j,j],'XData',[1,nbPART],... 'LineWidth',LW,'Color',Col_LIN_H,'Parent',axeCUR); end for j=1:nbPART for k=1:nbPART if j~=k txt_IDX(j,k) = text(j,k,' ',pTXT_V{:}); else txt_IDX(j,k) = text(j,k,' ',pTXT_D{:}); end end end wtbxappdata('set',fig,'txt_HDL',{txt_IDX,txt_IDX,[],txt_LIN_V,txt_LIN_H}); wtbxappdata('set',fig,'posLocFig',{posLocFig,0}); Pop_INDICES_Callback(handles.Pop_INDICES,eventdata,handles); %-------------------------------------------------------------------------- function set_Title(handles,val) valIDX = get(handles.Pop_INDICES,'Value'); strIDX = get(handles.Pop_INDICES,'String'); nameIDX = strIDX{valIDX}; if val>0 strTITLE = getWavMSG('Wavelet:mdw1dRF:ShowOnePart',val,nameIDX); else strTITLE = getWavMSG('Wavelet:mdw1dRF:ShowAllParts',nameIDX); end title(strTITLE ,'Parent',handles.Axe_GRAPHIC,'FontSize',10,'FontWeight','bold'); %--------------------------------------------------------------------------