回复 1 # cl_1982614 的帖子
很久没玩GUI了, 个人也不习惯使用, 仅试修改下, 感觉应该还有地方可精进, LZ自行试试吧!
clear all; clc;
%
PlotSin=['Num=get(hs,''Value''); subplot(ha); x=0:0.1:Num*pi;'...
'plot(x,sin(x)); axis([0 Num*pi -1 1]); xlabel(''x''); ylabel(''y=sin(x)'');'...
'if get(hcGrid,''Value'')==1; grid on; else; grid off; end;'];
PlotCos=['Num=get(hs,''Value'');subplot(ha); x=0:0.1:Num*pi;'...
'plot(x,cos(x)); axis([0 Num*pi -1 1]); xlabel(''x''); ylabel(''y=cos(x)'');'...
'if get(hcGrid,''Value'')==1; grid on; else; grid off; end;'];
%
hf=figure('Position',[200 200 600 400], 'Name','Uicontrol1', 'NumberTitle','off');
ha=axes('Position',[0.4 0.1 0.5 0.7], 'Box','on');
hcGrid=uicontrol(hf,'Style','check', 'Position',[50 240 100 20], 'String','Grid on', 'Value',1,...
'Callback','if get(hcGrid,''Value'')==1; Grid on; else; Grid off; end;');
hbSin=uicontrol(hf, 'Style','pushbutton', 'Position',[50,140,100,30], 'String','Plot sin(x)', 'Callback',PlotSin);
hbCos=uicontrol(hf, 'Style','Pushbutton', 'Position',[50,100,100,30], 'String','Plot cos(x)', 'Callback',PlotCos);
hbClose=uicontrol(hf, 'Position',[50 60 100 30], 'String','Exit', 'Callback','close(hf)');
hrboxoff=uicontrol(hf,'Style','radio', 'Position',[50 180 100 20], 'String','Set box off', 'Value',0, ...
'Callback','set(hrboxon,''Value'',0); set(hrboxoff,''Value'',1); set(gca,''Box'',''off'');');
hrboxon=uicontrol(hf,'Style','radio', 'Position',[50 210 100 20], 'String','Set box on', 'Value',1,...
'Callback', 'set(hrboxon,''Value'',1); set(hrboxoff,''Value'',0); set(gca,''Box'',''on'');');
htDemo=uicontrol(hf,'Style','text', 'Position',[300 350 100 20], 'String','change x(N pi)');
heNum=uicontrol(hf, 'Style','edit', 'Position',[50 270 100 20], 'String','4', ...
'CallBack','set(hs,''value'',str2num(get(heNum,''String''))); eval(PlotSin);');
htpi=uicontrol(hf,'Style','text','Position',[150 270 20 20], 'String','Pi');
htminmax=uicontrol(hf,'Style','text', 'Position',[50 330 100 20], 'String','1pi 20pi');
hs=uicontrol(hf,'Style','slider', 'Position',[50 310 100 20], 'value',4, 'Min',1, 'Max',20, ...
'callback','set(heNum,''String'',num2str(get(hs,''Value''))); eval(PlotSin);'); |