第五章 Matlab的GUI程序设计 Matlab程序的用户界面,可以用图形句柄通过代码来制作,也可以用GUI(Graphic User Interface)编辑器来制作,或二者结合起来做。我们分别用下面的例子来加以说明。 六、 用代码来制作GUI界面 例5.4对于传递函数为1212ssG的归一化二阶系统,制作一个能绘制该系统单位阶跃响应的图形用户界面。本例演示: (A)图形界面的大致生成过程; (B)静态文本和编辑框的生成; (C)坐标网格控制键的形成; (D)如何使用该界面。 (1)产生图形窗和轴位框:如图5-4所示。 图 5-4 产生坐标轴 clf reset %set(0,'DefaultFigureColor','b') H=axes('unit','normalized','position',[0,0,1,1],'visible','off'); %建立轴,并取轴句柄H set(gcf,'currentaxes',H); %在当前图形窗口上安置坐标轴H str='\fontname{隶书}归一化二阶系统的阶跃响应曲线'; text(0.12,0.93,str,'fontsize',13); %在H上,相对于左下角的取值 h_fig=get(H,'parent'); %取H的父句柄h_fig=gcf set(h_fig,'unit','normalized','position',[0.1,0.2,0.7,0.4]); %设置图形窗口h_fig的位置[0.1,0.2,0.7,0.4](相对于屏幕) h_axes=axes('parent',h_fig,... 'unit','normalized','position',[0.1,0.15,0.55,0.7],... 'xlim',[0 15],'ylim',[0 1.8],'fontsize',8); %在H窗口上指定位置画新轴 (2)在坐标框右侧生成作解释用的“静态文本”和可接收输入的“编辑框”:如图5-5所示。 图 5-5 在图形界面中添加编辑框和文本框 h_text=uicontrol(h_fig,'style','text',... 'unit','normalized','position',[0.67,0.73,0.25,0.14],... 'horizontal','left','string',{'输入阻尼比系数','zeta ='}); %在图形窗口(h_fig)指定位置[0.67,0.73,0.25,0.14]上生成文本标签 h_edit=uicontrol(h_fig,'style','edit',... 'unit','normalized','position',[0.67,0.59,0.25,0.14],... 'horizontal','left',... 'callback',[... 'z=str2num(get(gcbo,''string''));',... 't=0:0.1:15;',... 'for k=1:length(z);',... 'y(:,k)=step(1,[1 2*z(k) 1],t);',... 'plot(t,y(:,k));',... 'if (length(z)>1) ,hold on,end,',... 'end;',... 'hold off,']); % 在图形窗口(h_fig)指定位置[0.67,0.59,0.25,0.14] 上生成edit控件。通过回调函数为这个 edit控件编写代码,以决定该控件的行为。该行为将画一组系数为 z(...