www.gusucode.com > wavelet工具箱matlab源码程序 > wavelet/wavelet/compwav.m
function varargout = compwav(varargin) %COMPWAV Pattern detection tool using an adapted wavelet versus a well known one. % VARARGOUT = COMPWAV(VARARGIN) % COMPWAV MATLAB file for compwav.fig % COMPWAV, by itself, creates a new COMPWAV or raises the existing % singleton*. % % H = COMPWAV returns the handle to a new COMPWAV or the handle to % the existing singleton*. % % COMPWAV('Property','Value',...) creates a new COMPWAV using the % given property value pairs. Unrecognized properties are passed via % varargin to compwav_OpeningFcn. This calling syntax produces a % warning when there is an existing singleton*. % % COMPWAV('CALLBACK') and COMPWAV('CALLBACK',hObject,...) call the % local function named CALLBACK in COMPWAV.M with the given input % arguments. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Last Modified by GUIDE v2.5 13-Apr-2006 18:16:42 % % M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 01-Feb-2003. % Last Revision: 19-Dec-2011. % Copyright 1995-2011 The MathWorks, Inc. %*************************************************************************% % BEGIN initialization code - DO NOT EDIT % % ---------------------------------------- % %*************************************************************************% gui_Singleton = 0; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @compwav_OpeningFcn, ... 'gui_OutputFcn', @compwav_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 % %*************************************************************************% %*************************************************************************% % BEGIN Opening Function % % ---------------------- % % --- Executes just before compwav is made visible. % %*************************************************************************% function compwav_OpeningFcn(hObject,eventdata,handles,varargin) % This function has no output args, see OutputFcn. % Choose default command line output for compwav handles.output = hObject; % Update handles structure guidata(hObject,handles); %%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!% % TOOL INITIALISATION Introduced manualy in the automatic generated code % %%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!% Init_Tool(hObject,eventdata,handles); %*************************************************************************% % END Opening Function % %*************************************************************************% %*************************************************************************% % BEGIN Output Function % % --------------------- % % --- Outputs from this function are returned to the command line. % %*************************************************************************% function varargout = compwav_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; %*************************************************************************% % END Output Function % %*************************************************************************% %=========================================================================% % BEGIN Callback Functions % % ------------------------ % %=========================================================================% %-------------------------------------------------------------------------- function Rad_TwoPatterns_Callback(hObject,eventdata,handles) %#ok<DEFNU> set(hObject,'Value',1); set(handles.Rad_Test_Sig,'Value',0); set([handles.Pop_Test_Sig],'Enable','off') %-------------------------------------------------------------------------- function Rad_Trans_Callback(hObject,eventdata,handles) %#ok<DEFNU> set(hObject,'Value',1); set(handles.Rad_Super,'Value',0); %-------------------------------------------------------------------------- function Rad_Super_Callback(hObject,eventdata,handles) %#ok<DEFNU> set(hObject,'Value',1); set(handles.Rad_Trans,'Value',0); %-------------------------------------------------------------------------- function Rad_Test_Sig_Callback(hObject,eventdata,handles) %#ok<DEFNU> set(hObject,'Value',1); set(handles.Rad_TwoPatterns,'Value',0); set([handles.Rad_Test_Sig,handles.Pop_Test_Sig],'Enable','on') %-------------------------------------------------------------------------- function Rad_Contours_Callback(hObject,eventdata,handles) %#ok<DEFNU> set(hObject,'Value',1); set(handles.Rad_Images,'Value',0); %-------------------------------------------------------------------------- function Sli_Thresh_Callback(hObject,eventdata,handles) %#ok<DEFNU> Tresh = get(hObject,'Value'); set(handles.Edi_Thresh,'String',num2str(Tresh,'%1.3f')); %-------------------------------------------------------------------------- function Edi_Thresh_Callback(hObject,eventdata,handles) %#ok<DEFNU> FieldDefault = '0.7'; Val_Thresh = str2double(get(hObject,'String')); if Val_Thresh < 0.1 || Val_Thresh > 0.9 || isnan(Val_Thresh) set(hObject,'String',FieldDefault); set(handles.Sli_Thresh,'Value',str2double(FieldDefault)); else set(handles.Sli_Thresh,'Value',Val_Thresh); set(hObject,'String',num2str(Val_Thresh,'%1.3f')); end %-------------------------------------------------------------------------- function Rad_Images_Callback(hObject,eventdata,handles) %#ok<DEFNU> set(hObject,'Value',1); set(handles.Rad_Contours,'Value',0); %-------------------------------------------------------------------------- function Pus_Run_Callback(hObject,eventdata,handles) % Get figure handle. %------------------- hFig = handles.output; % Cleaning. %----------- wwaiting('msg',hFig,getWavMSG('Wavelet:commongui:WaitClean')); cleanTOOL([ ... handles.Axe_RunSigAdapWave , ... handles.Axe_RunSigWave , ... handles.Axe_AdapWaveDetect , ... handles.Axe_WaveDetect ... ]); % Get parameter values. %---------------------- tool_PARAMS = wtbxappdata('get',hObject,'tool_PARAMS'); Y = tool_PARAMS.Y; PSI = tool_PARAMS.PSI; % Get uicontrol values. %---------------------- RadTrans = get(handles.Rad_Trans,'Value'); ChkNoise = get(handles.Chk_Noise,'Value'); ChkTriangle = get(handles.Chk_Triangle,'Value'); RadContours = get(handles.Rad_Contours,'Value'); RadImages = get(handles.Rad_Images,'Value'); Str_Thresh = get(handles.Edi_Thresh,'String'); Thresh = str2double(Str_Thresh); % Running signal construction. %----------------------------- titleSTR{1} = getWavMSG('Wavelet:divGUIRF:Running_Signal'); radSIG = handles.Rad_Test_Sig; radVAL = get(radSIG,'Value'); if radVAL==1 popSIG = handles.Pop_Test_Sig; popVAL = get(popSIG,'Value'); popSTR = get(popSIG,'String'); sigNAM = deblank(popSTR(popVAL,:)); switch sigNAM{1} case 'testsig0' , load pthaar case 'testsig1' , load ptpssin1 case 'testsig2' , load ptpssin2 case 'testsig3' , load ptsine case 'testsig4' , load ptsumsin case 'testsig5' , load ptsinpol case 'testsig6' , load ptodtri case 'testsig7' , load ptodlin case 'testsig8' , load ptodpoly end end if RadTrans nbFormeBASE = 8; scaleBASE = 8; rapport = 2; PONDERATIONS = [1,1]; signalBASE = getSignal('translate',Y,rapport,PONDERATIONS,nbFormeBASE); lenSIG = length(signalBASE); scaleMIN = 1; scaleMAX = 2*scaleBASE; NoiseLevel = 1.25; titleSTR{2} = 'F((t-20)/8) + sqrt(2)\timesF((t-40)/4)'; else nbFormeBASE = 3; scaleBASE = 32; rapport = 4; PONDERATIONS = [1,1]; signalBASE = getSignal('superpose',Y,rapport,PONDERATIONS,nbFormeBASE); lenSIG = length(signalBASE); scaleMIN = 1; scaleMAX = 2*scaleBASE; NoiseLevel = 0.75; titleSTR{2} = 'F((t-40)/32) + 2\timesF((t-40)/8)'; end if radVAL==1, titleSTR{2} = sigNAM{1}; end signal = signalBASE; if ChkNoise NoiseLevel = NoiseLevel*std(signal); Noise = NoiseLevel*randn(1,lenSIG); signal = signal + Noise; titleSTR{2} = [titleSTR{2} ' + N']; end if ChkTriangle L = lenSIG/2; Triangle = [1:floor(L) , ceil(L):-1:1]/ceil(L); signal = signal + Triangle; titleSTR{2} = [titleSTR{2} ' + T']; end intervalleSIG = [0,nbFormeBASE*scaleBASE]; stepSIG = (intervalleSIG(2)-intervalleSIG(1))/(lenSIG-1); xvalSIG = linspace(intervalleSIG(1),intervalleSIG(2),lenSIG); stepScales = 1; scales = (scaleMIN:stepScales:scaleMAX); % Running signal (adapted wavelet column) axes display. %------------------------------------------------------ lw = 1; axeCur = handles.Axe_RunSigAdapWave; lin_SIG = line(xvalSIG,signal,'Color','b','LineWidth',lw,... 'Visible','Off','Parent',axeCur); Xlim = intervalleSIG; ext = abs(max(signal) - min(signal)) / 100; Ylim = [min(signal)-ext max(signal)+ext]; set(axeCur,'XLim',Xlim,'YLim',Ylim); if radVAL, [Tit1 Tit2] = deal(titleSTR{:}); titleSTR = [Tit1 ': ' Tit2]; end % Set the hdl visible. %--------------------- set([axeCur,lin_SIG],'Visible','on'); wguiutils('setAxesTitle',axeCur,titleSTR); % Running signal (wavelet column) axes display. %---------------------------------------------- lw = 1; axeCur = handles.Axe_RunSigWave; lin_WAV = line(xvalSIG,signal,'Color','b','LineWidth',lw,... 'Visible','Off','Parent',axeCur); Xlim = intervalleSIG; ext = abs(max(signal) - min(signal)) / 100; Ylim = [min(signal)-ext max(signal)+ext]; set(axeCur,'XLim',Xlim,'YLim',Ylim); % Set the axes visible. %---------------------- set([axeCur,lin_WAV],'Visible','on'); wguiutils('setAxesTitle',handles.Axe_RunSigWave,titleSTR); % Get the wavelet used. %---------------------- Wav = cbanapar('get',hFig,'wav'); % Compute the cwt. %----------------- C_psi = cwt({signal,stepSIG},scales,PSI); C_wav = cwt({signal,stepSIG},scales,Wav); % Find the coordinates of max coefs. %----------------------------------- % [ROW_psi,COL_psi] = maxCoefs(C_psi); % [ROW_wav,COL_wav] = maxCoefs(C_wav); % Coefficients representation. %----------------------------- if RadContours plotCONTOUR(C_psi,scales,xvalSIG,... handles.Axe_AdapWaveDetect,handles.Axe_ColBar,'psi',Thresh); LocalGrid(handles.Axe_AdapWaveDetect,RadTrans); plotCONTOUR(C_wav,scales,xvalSIG,... handles.Axe_WaveDetect,handles.Axe_ColBar,Wav,Thresh); LocalGrid(handles.Axe_WaveDetect,RadTrans); set([handles.Fra_ColPar,handles.Txt_PAL,handles.Txt_NBC, ... handles.Txt_BRI,handles.Pop_PAL,handles.Sli_NBC, ... handles.Edi_NBC,handles.Pus_BRI_M,handles.Pus_BRI_P],'Enable', 'Off'); elseif RadImages plotCOEFS(C_psi,scales,handles,... handles.Axe_AdapWaveDetect,handles.Axe_ColBar,'psi'); plotCOEFS(C_wav,scales,handles,... handles.Axe_WaveDetect,handles.Axe_ColBar,Wav); set([handles.Fra_ColPar,handles.Txt_PAL,handles.Txt_NBC, ... handles.Txt_BRI,handles.Pop_PAL,handles.Sli_NBC, ... handles.Edi_NBC,handles.Pus_BRI_M,handles.Pus_BRI_P],'Enable', 'On'); end % Set the axes visible. %---------------------- set(handles.Axe_AdapWaveDetect,'Visible','on'); set(handles.Axe_WaveDetect,'Visible','on'); % Init DynVTool. %--------------- axe_IND = []; axe_CMD = [... handles.Axe_RunSigAdapWave , ... handles.Axe_RunSigWave , ... handles.Axe_AdapWaveDetect , ... handles.Axe_WaveDetect ... ]; axe_ACT = []; dynvtool('init',hFig,axe_IND,axe_CMD,axe_ACT,[1 0],'','',''); % End waiting. %------------- wwaiting('off',hFig); %-------------------------------------------------------------------------- function Pus_CloseWin_Callback(hObject,eventdata,handles) %#ok<INUSD,DEFNU> % Get nwavetool figure parameters. %--------------------------------- tool_PARAMS = wtbxappdata('get',hObject,'tool_PARAMS'); % Enable the compare button on in nwavetool figure. %-------------------------------------------------- set(tool_PARAMS.Pus_Compare,'Enable','On'); % Close current figure. %---------------------- close(gcbf) %-------------------------------------------------------------------------- %=========================================================================% % END Callback Functions % %=========================================================================% %=========================================================================% % BEGIN Special Callback Functions % % -------------------------------- % %=========================================================================% % --- Executes on button press in Compare from nwavtool figure. function NwavtoolCall_Callback(hObject,eventdata,handles,Nwavetool_PARAMS) %#ok<DEFNU> % Save nwavtool information in 'UserData' field of compwav figure. %----------------------------------------------------------------- if isfield(Nwavetool_PARAMS,'demoMODE') F1 = allchild(0); end compwav('UserData',Nwavetool_PARAMS); if isfield(Nwavetool_PARAMS,'demoMODE') F2 = allchild(0); hFig = setdiff(F2,F1); set(hFig,'HandleVisibility','On') end %=========================================================================% % END Special Callback Functions % %=========================================================================% %=========================================================================% % BEGIN Tool Initialization % % ------------------------- % %=========================================================================% function Init_Tool(hObject,eventdata,handles) % WTBX -- Install DynVTool. %-------------------------- dynvtool('Install_V3',hObject,handles); % WTBX -- Initialize GUIDE Figure. %--------------------------------- wfigmngr('beg_GUIDE_FIG',hObject); % WTBX -- Install ANAPAR FRAME. %------------------------------ wnameDEF = 'db1'; utanapar('Install_V3_CB',hObject,'wtype','cwt'); cbanapar('set',hObject,'wav',wnameDEF); % WTBX -- Install COLORMAP FRAME %------------------------------- utcolmap('Install_V3',hObject,'Enable','On'); default_nbcolors = 240; cbcolmap('set',hObject,'pal',{'jet',default_nbcolors}); % Get nwavetool figure parameters. %--------------------------------- Nwavetool_PARAMS = get(hObject,'UserData'); % Initialize uicontrols. %----------------------- set(handles.Rad_Trans,'Value',Nwavetool_PARAMS.RadTrans); set(handles.Rad_Super,'Value',Nwavetool_PARAMS.RadSuper); set(handles.Chk_Noise,'Value',Nwavetool_PARAMS.ChkNoise); set(handles.Chk_Triangle,'Value',Nwavetool_PARAMS.ChkTriangle); set(Nwavetool_PARAMS.Pus_Compare,'Enable','Off'); % Set current tool figure parameters. %------------------------------------ tool_PARAMS.X = Nwavetool_PARAMS.X; tool_PARAMS.Y = Nwavetool_PARAMS.Y; tool_PARAMS.PSI = Nwavetool_PARAMS.PSI; tool_PARAMS.NC_PSI = Nwavetool_PARAMS.NC_PSI; tool_PARAMS.Pus_Compare = Nwavetool_PARAMS.Pus_Compare; wtbxappdata('set',hObject,'tool_PARAMS',tool_PARAMS); % WTBX -- Terminate GUIDE Figure. %-------------------------------- wfigmngr('end_GUIDE_FIG',hObject,mfilename); % Initialize colorbar. %--------------------- cmap = get(hObject,'Colormap'); axeCur = handles.Axe_ColBar; image((1:size(cmap,1)),'Parent',axeCur) set(axeCur,'XTick',[],'XTickLabel',[],'YTick',[],'YTickLabel',[]); dynvzaxe('exclude',hObject,axeCur) ColorBarVisibility(axeCur,'Off'); % Set Title in the RunSigAdapWave axes. %-------------------------------------- titleSTR = getWavMSG('Wavelet:divGUIRF:Running_Signal'); wguiutils('setAxesTitle',handles.Axe_RunSigAdapWave,titleSTR); % Set Title in the RunSigWave axes. %---------------------------------- titleSTR = getWavMSG('Wavelet:divGUIRF:Running_Signal'); wguiutils('setAxesTitle',handles.Axe_RunSigWave,titleSTR); % Set Title in the AdapWaveDetect signal axes. %--------------------------------------------- titleSTR = getWavMSG('Wavelet:divGUIRF:Str_AdapWav'); wguiutils('setAxesTitle',handles.Axe_AdapWaveDetect,titleSTR); % Set Title in the pattern detection axes. %----------------------------------------- titleSTR = getWavMSG('Wavelet:commongui:Str_Wavelet'); wguiutils('setAxesTitle',handles.Axe_WaveDetect,titleSTR); ColorBarVisibility(handles.Axe_ColBar,'On'); % End Of initialization. %----------------------- Pus_Run_Callback(hObject,eventdata,handles) %=========================================================================% % END Tool Initialization % %=========================================================================% %=========================================================================% % BEGIN CleanTOOL function % % ------------------------ % %=========================================================================% function cleanTOOL(handles) hLINES = findobj(handles,'Type','line'); delete(hLINES); hLINES = findobj(handles,'Type','patch'); delete(hLINES); hIMAGES = findobj(handles,'Type','Image'); delete(hIMAGES); %-------------------------------------------------------------------------- function ColorBarVisibility(Axe_ColBar,status) hIMAGES = findobj(Axe_ColBar,'Type','image'); set(Axe_ColBar,'Visible',status); set(hIMAGES,'Visible',status); %-------------------------------------------------------------------------- %=========================================================================% % END CleanTOOL function % %=========================================================================% %=========================================================================% % BEGIN Internal Functions % % ------------------------ % %=========================================================================% %------------------------------------------------------------------------- function signalBASE = ... getSignal(typeSIG,FormeBASE,rapport,PONDERATIONS,nbFormeBASE) Forme_1 = FormeBASE; len_F1 = length(Forme_1); x_new = linspace(0,1,len_F1/rapport); x_old = linspace(0,1,len_F1); Forme_2 = (rapport^0.5)*interp1(x_old,Forme_1,x_new); len_F2 = length(Forme_2); Forme_1 = PONDERATIONS(1)*Forme_1; Forme_2 = PONDERATIONS(2)*Forme_2; signalBASE = zeros(1,nbFormeBASE*len_F1); switch typeSIG case 'superpose' deb = floor(((nbFormeBASE-1)/2-1/4)*len_F1) + 1; fin = deb + len_F1-1; signalBASE(deb:fin) = Forme_1; deb = deb + floor((len_F1-len_F2)/2); fin = deb + len_F2-1; signalBASE(deb:fin) = signalBASE(deb:fin) + Forme_2; case 'translate' deb = 2*len_F1; fin = deb + len_F1-1; signalBASE(deb:fin) = Forme_1; deb = floor(5*len_F1-len_F2/2); fin = deb + len_F2-1; signalBASE(deb:fin) = signalBASE(deb:fin) + Forme_2; end %------------------------------------------------------------------------- function plotCONTOUR(C,scales,xvalSIG,Axe,Axe_ColBar,Wav,Thresh) % Compute and plot contours. %--------------------------- maxi = max(max(abs(C))); D = abs(C)/maxi; xval = (Thresh:0.025:1); contour(xvalSIG,scales,D,xval,'Parent',Axe); % Set Title in the pattern detection axes. %----------------------------------------- if isequal(Wav,'psi') titleSTR = getWavMSG('Wavelet:divGUIRF:Str_AdapWav'); else titleSTR = getWavMSG('Wavelet:divGUIRF:Nam_Wavelet',Wav); end wguiutils('setAxesTitle',Axe,titleSTR); setAxesATTRB(scales,Axe); % Set Xtick Values. %------------------ NBC = 64; xV = [xval(1),xval(end)]; setXTicks(Axe_ColBar,'real',NBC,xV); %------------------------------------------------------------------------- function plotCOEFS(C,scales,handles,Axe,Axe_ColBar,Wav) NBC = 240; abs_mode = 1; C = wcodemat(C,NBC,'mat',abs_mode); cbcolmap('set',handles.output,'pal',{'jet',NBC}); xL = get(handles.Axe_RunSigWave,'XLim'); yL = [scales(1) scales(end)]; image(xL,yL,C,'Parent',Axe); % Set Title in the pattern detection axes. %----------------------------------------- if isequal(Wav,'psi') titleSTR = getWavMSG('Wavelet:divGUIRF:Str_AdapWav'); else titleSTR = getWavMSG('Wavelet:divGUIRF:Nam_Wavelet',Wav); end wguiutils('setAxesTitle',Axe,titleSTR); setAxesATTRB(scales,Axe); setXTicks(Axe_ColBar,'real',NBC,[0 1],5); %------------------------------------------------------------------------- function plotSURF(C,scales,xvalSIG,Axe,Axe_ColBar,Wav) %#ok<DEFNU> NBC = 240; set(get(Axe,'Parent'),'Colormap',jet(NBC)); maxi = max(max(abs(C))); D = abs(C)/maxi; surf(xvalSIG,scales,D,'Parent',Axe); shading interp set(Axe,'View',[-18 72],'XLim',[xvalSIG(1),xvalSIG(end)],'YLim',[1,size(C,1)]); % Set Title in the pattern detection axes. %----------------------------------------- if isequal(Wav,'psi') titleSTR = getWavMSG('Wavelet:divGUIRF:Str_AdapWav'); else titleSTR = getWavMSG('Wavelet:divGUIRF:Nam_Wavelet',Wav); end wguiutils('setAxesTitle',Axe,titleSTR); setAxesATTRB(scales,Axe); setXTicks(Axe_ColBar,'int',NBC,[0 NBC]); %------------------------------------------------------------------------- function setXTicks(Axe_ColBar,type,NBC,xV,nbTICS) image((1:NBC),'Parent',Axe_ColBar); set(get(Axe_ColBar,'Parent'),'Colormap',jet(NBC)); if nargin<5 , nbTICS = 7; end xlim = get(Axe_ColBar,'XLim'); alfa = (xlim(2)-xlim(1))/(xV(2)-xV(1)); beta = xlim(1)-alfa*xV(1); xCOL = linspace(xV(1),xV(2),nbTICS); xtics = alfa*xCOL + beta; switch type case 'int' , xlabs = int2str(xCOL(:)); case 'real' , xlabs = num2str(xCOL(:),2); end set(Axe_ColBar, ... 'XTick',xtics,'XTickLabel',xlabs, ... 'YTick',[],'YTickLabel',[] ... ); %------------------------------------------------------------------------- function setAxesATTRB(scales,axe) nb_SCALES = length(scales); nb = ceil(nb_SCALES/20); ytics = nb:nb:nb_SCALES; tmp = scales(nb:nb:nb*length(ytics)); ylabs = num2str(tmp(:)); set(axe, ... 'YTick',ytics, ... 'YTickLabel',ylabs, ... 'YDir','normal', ... 'Box','On' ... ); %------------------------------------------------------------------------- function [ROW,COL] = maxCoefs(C) %#ok<DEFNU> nb_ROW = size(C,1); D = abs(C(:)); [~,idx] = max(D); col_INF = fix(idx/nb_ROW); ROW = idx - nb_ROW*col_INF; if ROW~=0 COL = col_INF+1; else COL = col_INF; ROW = nb_ROW; end %------------------------------------------------------------------------- function LocalGrid(Axe_Detect,RadTrans) if RadTrans line([20 20],[0 8],'Color','k','LineStyle','--','Parent',Axe_Detect); line([0 20],[8 8],'Color','k','LineStyle','--','Parent',Axe_Detect); line([40 40],[0 4],'Color','k','LineStyle','--','Parent',Axe_Detect); line([0 40],[4 4],'Color','k','LineStyle','--','Parent',Axe_Detect); line(20,8,'Color','k','Marker','*','Parent',Axe_Detect); line(40,4,'Color','k','Marker','*','Parent',Axe_Detect); else line([40 40],[0 32],'Color','k','LineStyle','--','Parent',Axe_Detect); line([0 40],[32 32],'Color','k','LineStyle','--','Parent',Axe_Detect); line([40 40],[0 8],'Color','k','LineStyle','--','Parent',Axe_Detect); line([0 40],[8 8],'Color','k','LineStyle','--','Parent',Axe_Detect); line(40,32,'Color','k','Marker','*','Parent',Axe_Detect); line(40,8,'Color','k','Marker','*','Parent',Axe_Detect); end %------------------------------------------------------------------------- %=========================================================================% % END Internal Functions % %=========================================================================% %=========================================================================% % BEGIN Demo Utilities % % --------------------- % %=========================================================================% function closeDEMO(hFig,eventdata,handles,varargin) %#ok<INUSD,DEFNU> close(hFig); %---------------------------------------------------------- function demoPROC(hFig,eventdata,handles,varargin) %#ok<INUSL,DEFNU> waveDEM = varargin{1}; handles = guidata(hFig); cbanapar('set',hFig,'wav',waveDEM); Pus_Run = handles.Pus_Run; Pus_Run_Callback(Pus_Run,[],handles); %=========================================================================% % END Tool Demo Utilities % %=========================================================================%