gusucode.com > 信号处理工具箱 - signal源码程序 > signal\signal\siggui\private\sbcmplx.m
function sbcmplx %SBCMPLX Signal Browser Complex Popup callback routine. % Internal function. % Copyright (c) 1988-98 by The MathWorks, Inc. % $Revision: 1.1 $ % TPK 12/5/95 ud = get(gcf,'userdata'); pop = findobj(gcf,'tag','complexpopup'); pv = get(pop,'value'); % new popup value pv_old = get(pop,'userdata'); % old popup value if isequal(pv,pv_old) return end set(pop,'userdata',pv) % save value for i = 1:length(ud.lines) var = ud.lines(i).data; switch pv case 1 % real var = real(var); case 2 % imaginary var = imag(var); case 3 % magnitude var = abs(var); case 4 % angle var = angle(var); end for j = 1:length(ud.lines(i).h) set(ud.lines(i).h(j),'ydata',var(:,j)) if ud.prefs.tool.panner set(ud.lines(i).ph(j),'ydata',var(:,j)) end end end if length(ud.lines)>0 set(ud.mainaxes,'ylimmode','auto') % auto range ylimits if ud.prefs.tool.ruler set(ud.ruler.lines,'visible','off') % don't let these lines effect the % ylimit computation set(ud.ruler.markers,'visible','off') end ylim = get(ud.mainaxes,'ylim'); set(ud.mainaxes,'ylim',ylim) % set ylimmode to maunal ud.limits.ylim = ylim; set(gcf,'userdata',ud) if ud.prefs.tool.panner panaxes = ud.panner.panaxes; set(panaxes,'xlim',ud.limits.xlim,'ylim',ylim) panner('update') end % update the ruler lines if ud.prefs.tool.ruler ruler('showlines',gcf) ruler('newlimits') ruler('newsig') end end