www.gusucode.com > Matlab动力系统和时间序列分析工具箱 > Matlab动力系统和时间序列分析工具箱/lab432/gui/draw_portrait.m
function draw_portrait; %Function draws phase portrait % last modified 29.02.04 global TS GSD_GLOBALS [h, fig] = gcbo; L=length(GSD_GLOBALS.view_phase_portrait.ListBox); val=get(h,'value'); if val>1 if h==GSD_GLOBALS.view_phase_portrait.ListBox(1) set(fig,'currentaxes',GSD_GLOBALS.view_phase_portrait.ax(1)); set(GSD_GLOBALS.view_phase_portrait.ax(1),'visible','on'); elseif h==GSD_GLOBALS.view_phase_portrait.ListBox(2) set(fig,'currentaxes',GSD_GLOBALS.view_phase_portrait.ax(2)); set(GSD_GLOBALS.view_phase_portrait.ax(2),'visible','on'); else set(fig,'currentaxes',GSD_GLOBALS.view_phase_portrait.ax(3)); set(GSD_GLOBALS.view_phase_portrait.ax(3),'visible','on'); end plot(TS.time,TS.data(:,val-1)); else if h==GSD_GLOBALS.view_phase_portrait.ListBox(1) set(fig,'currentaxes',GSD_GLOBALS.view_phase_portrait.ax(1)); set(GSD_GLOBALS.view_phase_portrait.ax(1),'visible','off'); elseif h==GSD_GLOBALS.view_phase_portrait.ListBox(2) set(fig,'currentaxes',GSD_GLOBALS.view_phase_portrait.ax(2)); set(GSD_GLOBALS.view_phase_portrait.ax(2),'visible','off'); else set(fig,'currentaxes',GSD_GLOBALS.view_phase_portrait.ax(3)); set(GSD_GLOBALS.view_phase_portrait.ax(3),'visible','off'); end cla end selection=[]; for i=1:L val=get(GSD_GLOBALS.view_phase_portrait.ListBox(i),'value'); if val>1 selection=[selection val]; end end set(fig,'currentaxes',GSD_GLOBALS.view_phase_portrait.ax(4)); switch length(selection) case {0,1} set(GSD_GLOBALS.view_phase_portrait.ax(4),'visible','off'); cla; set(GSD_GLOBALS.view_phase_portrait.PPText,'visible','off'); case 2 set(GSD_GLOBALS.view_phase_portrait.PPText,'visible','on'); set(GSD_GLOBALS.view_phase_portrait.ax(4),'visible','on'); cla; plot(TS.data(:,selection(1)-1),TS.data(:,selection(2)-1)),grid on; set(xlabel(TS.name{selection(1)-1}),'interpreter','none'); set(ylabel(TS.name{selection(2)-1}),'interpreter','none'); case 3 set(GSD_GLOBALS.view_phase_portrait.PPText,'visible','on'); set(GSD_GLOBALS.view_phase_portrait.ax(4),'visible','on'); cla; plot3(TS.data(:,selection(1)-1),TS.data(:,selection(2)-1),TS.data(:,selection(3)-1)); grid on; set(xlabel(TS.name{selection(1)-1}),'interpreter','none'); set(ylabel(TS.name{selection(2)-1}),'interpreter','none'); set(zlabel(TS.name{selection(3)-1}),'interpreter','none'); end