📄 sigplot2winguicb.m
字号:
function sigplot2winGUIcb(callbackChoice, figureHandle)% function sigplot2winGUIcb% % This function retrieves the variables from the Graphical User Interface (GUI)% and calls sigplot2. sigplot2 performs the actual plot-routines.%% sigplot2win -> sigplot2winGUIcb -> sigplot2% sigplot2win_s -> sigplot2win -> sigplot2winGUIcb -> sigplot2% "A -> B" means that A calls B.%% In: -% Out: -% Function Calls: sigplot2% * DBT, A Matlab Toolbox for Radar Signal Processing *% (c) FOA 1994-2000. See the file dbtright.m for copyright notice.% Start : 2000-01-17 Jouni Rantakokko (jounir).% Latest change: $Date: 2000/10/16 15:21:46 $ $Author: svabj $.% $Revision: 1.15 $% ***************************************************************************** if (~isempty(gcbf)) curGuiFig = gcbf; else curGuiFig = figureHandle; % If this function is not called by a callback from the correct window, % the figure handle must be supplied by the caller. end%if if (nargin == 0) dbterror('Input parameter "callbackChoice" is missing') end%if switch (callbackChoice) case 'replot' replot(curGuiFig); case 'help' helpwin2 sigplot2win case 'restoreView' disp('sigplot2winGUIcb:restoreView') view([-37 50]) case 'signalInfo' %disp('signalInfo') sigsize(get(findobj(curGuiFig,'tag','sigplot2win'),'UserData')) case 'options' disp('options') case 'GUIControlsOff' % The callback figure is the GUI window. %disp('GUIControlsOff') replot(curGuiFig, 0) case 'GUIControlsOn' % The callback figure is the temporary window and not the GUI window. %disp('GUIControlsOn') tempUserData = get(gcbf,'UserData'); curGuiFig = tempUserData.GUIFigureHandle; set(curGuiFig ,'Visible','On') close(gcbf) case 'sliderPulseCallBack' startPulse = fix(get(findobj(curGuiFig,'tag','SliderPulse'),'Value')); set(findobj(curGuiFig,'tag','EditTextStartIndexPulse'),'String',... startPulse); %set(findobj(curGuiFig,'tag','SliderPulse'),'Max',10); case 'sliderRangeCallBack' set(findobj(curGuiFig,'tag','EditTextStartIndexRange'),'String',... fix(get(findobj(curGuiFig,'tag','SliderRange'),'Value'))); case 'sliderSpaceCallBack' set(findobj(curGuiFig,'tag','EditTextStartIndexSpace'),'String',... fix(get(findobj(curGuiFig,'tag','SliderSpace'),'Value'))); case 'sliderExtraCallBack' set(findobj(curGuiFig,'tag','EditTextStartIndexExtra'),'String',... fix(get(findobj(curGuiFig,'tag','SliderExtra'),'Value'))); case 'sliderCPICallBack' set(findobj(curGuiFig,'tag','EditTextStartIndexCPI'),'String',... fix(get(findobj(curGuiFig,'tag','SliderCPI'),'Value'))); case 'sliderTrialCallBack' set(findobj(curGuiFig,'tag','EditTextStartIndexTrial'),'String',... fix(get(findobj(curGuiFig,'tag','SliderTrial'),'Value'))); case 'startIndexPulseCallBack' set(findobj(curGuiFig,'tag','SliderPulse'),'Value',... str2num(get(findobj(curGuiFig,'tag','EditTextStartIndexPulse'),... 'string'))); case 'startIndexRangeCallBack' set(findobj(curGuiFig,'tag','SliderRange'),'Value',... str2num(get(findobj(curGuiFig,'tag','EditTextStartIndexRange'),... 'string'))); case 'startIndexSpaceCallBack' set(findobj(curGuiFig,'tag','SliderSpace'),'Value',... str2num(get(findobj(curGuiFig,'tag','EditTextStartIndexSpace'),... 'string'))); case 'startIndexExtraCallBack' set(findobj(curGuiFig,'tag','SliderExtra'),'Value',... str2num(get(findobj(curGuiFig,'tag','EditTextStartIndexExtra'),... 'string'))); case 'startIndexCPICallBack' set(findobj(curGuiFig,'tag','SliderCPI'),'Value',... str2num(get(findobj(curGuiFig,'tag','EditTextStartIndexCPI'),'string'))); case 'startIndexTrialCallBack' set(findobj(curGuiFig,'tag','SliderTrial'),'Value',... str2num(get(findobj(curGuiFig,'tag','EditTextStartIndexTrial'),... 'string'))); case 'dummy' disp('dummy') case 'dummy' disp('dummy') end%switch autoPlotFlag = 0; if ((autoPlotFlag) & ~strcmp(callbackChoice,'replot')) sigplot2winGUIcb('replot') end%if%endfunction sigplot2winGUIcb% ----------------------------------------------------------------------- %% function cfunc;% ----------------------------------------------------------------------- %function outVar = cfunc(inVar); %inVar %iscell(inVar) %ischar(inVar{1}) if (iscell(inVar)) inVar = inVar{1}; end%if if ischar(inVar) %inVar = str2num(inVar); inVar = eval(inVar); end%if outVar = inVar;%endfunction cfunc% ----------------------------------------------------------------------- %% function replot% ----------------------------------------------------------------------- %function replot(curGuiFig, uiControlFlag)% uiControlFlag [D](BoolT): Whether to print the user inteface controls,% e.g. buttons and popup menus, which are present in the figure window% (=1) or not (=0). if (nargin < 2) uiControlFlag = 1; end%if pulStartIndex=cfunc(get(findobj('tag','EditTextStartIndexPulse'),'String')); ranStartIndex=cfunc(get(findobj('tag','EditTextStartIndexRange'),'String')); spaStartIndex=cfunc(get(findobj('tag','EditTextStartIndexSpace'),'String')); %extraStartIndex=cfunc(get(findobj('tag','EditTextStartIndexExtra'),... % 'String')); cpiStartIndex=cfunc(get(findobj('tag','EditTextStartIndexCPI'),'String')); %trialStartIndex=cfunc(get(findobj('tag','EditTextStartIndexTrial'),... % 'String')); pulLength=cfunc(get(findobj('tag','EditTextLengthPulse'),'string')); ranLength=cfunc(get(findobj('tag','EditTextLengthRange'),'string')); spaLength=cfunc(get(findobj('tag','EditTextLengthSpace'),'string')); %extraLength=cfunc(get(findobj('tag','EditTextLengthExtra'),'string')); cpiLength=cfunc(get(findobj('tag','EditTextLengthCPI'),'string')); %trialLength=cfunc(get(findobj('tag','EditTextLengthTrial'),'string')); pulIx=pulStartIndex:(pulStartIndex+pulLength-1); ranIx=ranStartIndex:(ranStartIndex+ranLength-1); spaIx=spaStartIndex:(spaStartIndex+spaLength-1); %extraIx=extraStartIndex:(extraStartIndex+extraLength-1); cpiIx=cpiStartIndex:(cpiStartIndex+cpiLength-1); %trialIx=trialStartIndex:(trialStartIndex+trialLength-1); sigTypeIx=(get(findobj(curGuiFig,'tag','PopupMenuSignalType'),'value')); sigTypeCell={'sig';'fft'}; sigType=sigTypeCell{sigTypeIx}; sigPartIx=(get(findobj(curGuiFig,'tag','PopupMenuSignalPart'),'value')); sigPartCell={'abs';'angle';'uwangle';'real';'imag'}; sigPart=sigPartCell{sigPartIx}; scaleTypeIx=(get(findobj(curGuiFig,'tag','PopupMenuScaleType'),'value')); scaleTypeCell={'lin';'dB';'log';'radians';'degrees';'pirad'}; scaleType=scaleTypeCell{scaleTypeIx}; normTypeIx=(get(findobj(curGuiFig,'tag','PopupMenuNormType'),'value')); normTypeCell={'min';'max';'none'}; normType=normTypeCell{normTypeIx}; plotTypeIx=(get(findobj(curGuiFig,'tag','PopupMenuPlotType'),'value')); plotTypeCell={'surf';'surfl';'surfc';'mesh';'meshc';'meshz';'pcolor';... 'contour';'contourf';'contour3';'bar';'barh';'bar3';'plot';'stem';... 'stairs';'noplot';}; plotType=plotTypeCell{plotTypeIx}; pulAxis=cfunc(get(findobj('tag','EditTextAxisValuesPulse'),'string')); ranAxis=cfunc(get(findobj('tag','EditTextAxisValuesRange'),'string')); spaAxis=cfunc(get(findobj('tag','EditTextAxisValuesSpace'),'string')); %extraAxis=cfunc(get(findobj('tag','EditTextAxisValuesExtra'),'string')); cpiAxis=cfunc(get(findobj('tag','EditTextAxisValuesCPI'),'string')); %trialAxis=cfunc(get(findobj('tag','EditTextAxisValuesTrial'),'string')); normLevel=cfunc(get(findobj('tag','EditTextNormLevel'),'string')); normMaxLevel=normLevel; normMinLevel=normLevel; % normMinLevel=normMaxLevel... plotMinLevel=cfunc(get(findobj('tag','EditTextPlotMinLevel'),'string')); plotMaxLevel=cfunc(get(findobj('tag','EditTextPlotMaxLevel'),'string')); sigMinVal=cfunc(get(findobj('tag','EditTextSignalMinValue'),'string')); sigMaxVal=cfunc(get(findobj('tag','EditTextSignalMaxValue'),'string')); lineSpec=cfunc(get(findobj('tag','EditTextLineSpec'),'string')); extraPlotParam=cfunc(get(findobj('tag','EditTextExtraPlotParameter'),'string')); sigToPlot=get(findobj(curGuiFig,'tag','sigplot2win'),'UserData'); % ********* If GUI controlls off, create a new figure to plot in ********** if (uiControlFlag) plotFig = curGuiFig; axes(findobj(curGuiFig,'tag','AxesPlot')); else %(uiControlFlag) %curColorMap = colormap; %[viewAz, viewEl] = view; curAxes = findobj(curGuiFig,'tag','AxesPlot'); curTitle = get(get(curAxes,'Title'),'String') curGuiFigPos = get(curGuiFig,'Position'); set(curGuiFig ,'Visible','Off') tempFig = figure; tempFigPos = get(tempFig,'Position'); tempFigPos(1) = curGuiFigPos(1); %tempFigPos(2) = curGuiFigPos(2) + (curGuiFigPos(4) - tempFigPos(4)); tempFigPos(2) = curGuiFigPos(2); set(tempFig,'Position',tempFigPos) viewMenu = uimenu(tempFig ,'Label','&View', 'Position',3); toggleGUIControlsMenu = uimenu(viewMenu ,... 'Label','GUI &Controls On', ... 'Callback','sigplot2winGUIcb(''GUIControlsOn'')'); tempUserData.GUIFigureHandle = curGuiFig; set(tempFig, 'UserData',tempUserData) %view([viewAz, viewEl]); %colormap(curColorMap); title(curTitle) end%if (uiControlFlag) % ****************** Execute the actual plot command ****************** if (1) % Should execute this branch the first time for this figure. %[viewAz, viewEl] = view; end%if (1) sigplot2(sigToPlot,pulIx,ranIx,spaIx,[],cpiIx,sigType,sigPart,scaleType,... normType,plotType,lineSpec,pulAxis,ranAxis,spaAxis,[],[],normMinLevel,... normMaxLevel,plotMinLevel,plotMaxLevel,sigMinVal,sigMaxVal,extraPlotParam); set(gca,'tag','AxesPlot'); % After plots the tag for the axes must be reset... %view([viewAz, viewEl]); if (uiControlFlag) else %(uiControlFlag) title(curTitle) end%if (uiControlFlag)%endfunction replot
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -