Tài liệu Matlab - các toán tử cơ bản của Matlab - P2 pdf

10 375 1
Tài liệu Matlab - các toán tử cơ bản của Matlab - P2 pdf

Đang tải... (xem toàn văn)

Thông tin tài liệu

41    Tamuốnlàkhibấmchuột,sốlầnbấmsẽđượcđếmvàghilại.Trướchết tagọiguidevàcóđượcmộtlayoutrỗng.VàoPropertyInspector(ôsoạnthảo thuộctính)vàghi vàoNamechuỗiʺct1_52ʺvàchấpnhậnthuộctíchTagmặc địnhcủanólàfigure1;dùngFontchữmặcđịnh,cỡchữ12,bold.Tadùngô EditTextđểghilạisốlầnbấm.TavàoPropertyInspectorr ồichọnString.Ta nhậpvàoônàychuỗiʺSolanbamchuot:0ʺ.TaghivàoôTagchuỗiʺeditmotʺ và cũng dùng Font chữ mắcđịnh, cỡ chữ 12 và bold. Tiếp theo kéo Pushbuttonvàolayoutvàsoạn thảothu ộctínhchonóvớiFontchữmặcđịnh, cỡchứ12,bold.TrongthuôctínhStringghichuỗiʺBamchuotʺ;ghivàTag chuỗiʺpushbuttonmotʺ.Nhưvậylàtađãthiếtkếxong.Bâygiờtalưul ạivới tênlà ct1_52.figvàct1_52.m. Nhiệmvụtiếptheolàghicáclệnhcầnthiếtvàofile  ct1_52.m.Filenày đãđượcMATLABtựđộngtạora.Taphảithêmvàođócácmãlệnhđểkhi bấmchuộtthìsốlầnbấmđượcthểhiệntrênôEditText.Tasẽghicácmãlệnh nàyvàophầ n:   functionvarargout=pushbuttonmot_Callback(h,eventdata,handles,varargin)  dolệnhcầnđượcthựchiệnkhigọipushbutton.Nộidungcủact1_52.mlà:  functionvarargout=Ct1_52(varargin) ifnargin==0  fig=openfig(mfilename,ʹreuseʹ);  set(fig,ʹColorʹ,get(0,ʹdefaultUicontrolBackgroundColorʹ)); 42  handles=guihandles(fig);  guidata(fig,handles); ifnargout>0 varargout{1}=fig; end elseif ischar(varargin{1})  try [varargout{1:nargout}]=feval(varargin{:});  catch disp(lasterr);  end end functionvarargout=pushbuttonmot_Callback(h,eventdata,handles,varargin) persistentdem;%biendemlapersistentdenotontaigiualangoiham ifisempty(dem) dem =0; end dem=dem+1; str=sprintf(ʹSolanbamchuot:%dʹ,dem); set(handles.editmot,ʹStringʹ,str);   )ChuyểnđổitừđộFahrenheitsangđộCelcius:TathiếtkếmộtGUIđể chuyểnđổinhiệtđộ.Giaodiệncódạngnhưsau:   ThuộctínhcủaLayoutđượcghiName: ct1_53còncácthuộctínhkhác làmặcđịnh. 43 Ta dùng hai Frame vớicácTag là frmmot và frame2. Các thuộc tính khácchấpnhậngiátrịmặcđịnh.  EditTextthứnhấtcócácthuộctínhFontName:Arial,FontSize:demi, FơntWeight:demi,String:Fahrenheit,Tag:editmotcòncácthuộc tínhkháclà mặcđịnh. Edit Text thứ hai có các thuộc tính FontName: Arial, FontSize: demi, FơntWeight:demi,String:đểtrống,Tag:edithaicòncácthuộc tínhkháclà mặcđịnh. Edit Text thứ ba có các thuộc tính FontName: Arial, FontSize: demi, FơntWeight:demi,String:Celcius,Tag:editbacòncácthuộctínhkháclàmặc định. Edit Text thứ tư có các thuộc tính FontName: Arial, FontSize: demi, FơntWeight:demi,String:đểtrống,Tag:editboncòncácthuộctínhkháclà mặcđịnh. Sau khi thiết kế xong, lưu nó với tên ct3_18.fig. MATLAB tạo thêm ct1_53.m.Bâygiờtacầnviếtmãchonó.Nhiệmvụcủađoạnmãlàkhitanhập nhiệtđộFahrenheitvàoôEdittextthứhaithìtrong ôEditTextthứ4phải xuấthiệngiátrịnhiệtđộCelcius tươngứng.Dovậynộidungcủact1_53.mlà:  functionvarargout=Ct1_53(varargin) ifnargin==0%LAUNCHGUI  fig=openfig(mfilename,ʹreuseʹ);  set(fig,ʹColorʹ,get(0,ʹdefaultUicontrolBackgroundColorʹ));  handles=guihandles(fig);  guidata(fig,handles);  ifnargout>0 varargout{1}=fig;  end elseifischar(varargin{1})  try [varargout{1:nargout}]=feval(varargin{:});%FEVALswitchyard  catch disp(lasterr);   end end functionvarargout=edithai_Callback(h,eventdata,handles,varargin) f=get(handles.edithai,ʹStringʹ); 44 f=str2num(f); c=(f‐32)*5/9; c=num2str(c); set(handles.editbon,ʹStringʹ,c);  Trongđóđoạnmãcầnviếtnằmtrongđoạn:  functionvarargout=edithai_Callback(h,evendata,handles,varargin)  CáclệnhkháclàdoMATLABtựđộngtạora.  )Dùngsliderđểnhậpsốliệu:Tadùngvídụchuyểnđổinhiệtđộtrên nhưngbâygiờsẽthêmsliderđểthay đổinhiệtđộđầuvào.Giaodiệnsẽcó dạng:    Nhưvậytacần5phầntử,trongđócómộtphầntửlàslidervà4phần tửEditText. Layout có thuộc tính Name: ct1_54, còn các thuộc tín h khác ta chấp nhậngiátrịmặcđịnh. SlidercóthuộctínhMax:1.0vàMin:0.0. EditTextthứnh ấtcóthuộctínhFontSize:12,FơntWeight:bold,String: Fahrenheitcòncácthuộctínhkhácchấp nhậngiátrịmặcđịnh. EditTextthứ2cóthuộctínhFontSize:12,FơntWeight:bold,String:để trống. Edit Text  thứ 3 có thuộc tính FontSize: 12, FơntWeight: bold, String: Celcius. 45 EditTextthứ4cóthuộctínhFontSize:12,FơntWeight:bold,String: để trống.(Cácthuộctínhmàtakhôngnhắcđếncónghĩalàchấpnhậngiátrịmặc định). Layoutđượclưuvớitên ct1_54.fig.  Bâygiờtaviếtmãchophần ct1_54.mmàMATLABđãtựđộngtạora. Nhiệmvụcủanólànhậngiátrịthayđổitừcontrượt,cậpnh ậtchoEditText 2vàEditText4.Tacónộidungcủa ct1_54.m:  functionvarargout=ct1_54(varargin) ifnargin==0  fig=openfig(mfilename,ʹreuseʹ);  handles=guihandles(fig);  guidata(fig,handles);  ifnargout>0 varargout{1}=fig;  end elseifischar(varargin{1})  try [varargout{1:nargout}]=feval(varargin{:});%FEVALswitchyard  catch disp(lasterr);  end end  functionvarargout=slider1_Callback(h,eventdata, handles,varargin) f=get(handles.slider1,ʹValueʹ);%nhangiatritucontruot f=f*180+32;%tinhradoFahrenheit a=num2str(f);%bienlaithanhchuoi set(handles.edit2,ʹStringʹ,a);%ghivaoodoFahrenheit b=(f‐32)*5/9;%doithanhdoCelcius b=num2str(b);%doilaithanhchuoi set(handles.edit4,ʹStringʹ,b);%ghivao odoCelcius  )Xuấtsốliệucólựachọn:Tavẫndùngvídụtrênnhưngbâygiờnhiệt độ quyđổi có thể được tính theo thang nhiệtđộKenvine, Celcius hay 46 Rankine.Đểcóthểchọnlựata dùngmộttrongcácphươngán:Popupmenu, Rdiobutton,ListboxhayCheckbox.GiaodiệnkhidùngPopupmenunhưsau:     NhưvậylàtacầnmộtSlider,baEditTextvàmộtPopupmenu.Layout cóthuộctínhName: ct13_55.  SlidercóthuộctínhMax:1vàMin:0  Edit Text thứ nhất có thuộc tính FontSize: 12, FơntWeight: bold và String:Fahrenheit.  EditTextthứhaicóthuộctínhFontSize:12,FơntWeight:boldvàString đểtrống. EditTextthứ3 cóthuộctínhFontSize:12,FơntWeight:boldvàStringđể trống. Popupmenucóthuộctính FontSize:12,FontWeight:bold.Đểghivào thuộctínhStringtabấmđúpchuộtvàoiconcủanóvàviết3dòng:Kelvine, CelciusvàRankine.  Fileđược lưu với tên ct1_55.fig. Vấnđềcòn lại là viết mã trong file ct1_55.m.Mãcầnthựchiệnnhận giátrịtừSlider,xemPopupmenunàođược chọnđểhiểnthịnhiệtđộtươngứng.File ct1_55.mnhưsau:  functionvarargout=ct1_55(varargin) ifnargin==0%LAUNCHGUI  fig=openfig(mfilename,ʹreuseʹ);  set(fig,ʹColorʹ,get(0,ʹdefaultUicontrolBackgroundColorʹ));  handles=guihandles(fig);  guidata(fig,handles); 47  ifnargout>0 varargout{1}=fig;  end elseifischar(varargin{1})  try [varargout{1:nargout}]=feval(varargin{:});  catch disp(lasterr);  end end functionvarargout=slider1_Callback(h,eventdata,handles,varargin) f=get(handles.slider1,ʹValueʹ); f=f*180+32; a=num2str(f); set(handles.edit2,ʹStringʹ,a); r=f+495.7; c =(f‐32)*5/9; k=c+273.15; chon=get(handles.popupmenu1,ʹValueʹ); ifchon==1 t=k; elseifchon==2 t=c; elseifchon==3 t=r; end t=num2str(t); set(handles.edit3,ʹStringʹ,t);  Tiếptheotaxéttrườnghợpdùnglistbox.ThayvìdùngPopupmenutadùng Listbox.Cácphầntửkhácvàthuộctínhcủanókhôngthayđổi.Thuộctính NamecủaLayoutlà  ct1_56.TavàoôStringcủaListboxvàghivàođó3dòng Kelvine,CelciusvàRankine.Giaodiệnnhưsau:  48  Fileđượclưuvớitênct1_56.fig.Tiếptheoviếtlệnhchoct1_56.m.Tacó filenàynhưsau:  functionvarargout=ct1_56(varargin) ifnargin==  fig=openfig(mfilename,ʹreuseʹ);  set(fig,ʹColorʹ,get(0,ʹdefaultUicontrolBackgroundColorʹ));  handles=guihandles(fig);  guidata(fig,handles);  ifnargout>0 varargout{1}=fig;  end elseifischar(varargin{1})  try [varargout{1:nargout}]=feval(varargin{:});  catch disp(lasterr);  end end functionvarargout=slider1_Callback(h,eventdata,handles,varargin) f=get(handles.slider1,ʹValueʹ); f=f*180+32; a=num2str(f); set(handles.edit2,ʹStringʹ,a); r=f+495.7; 49 c=(f‐32)*5/9; k=c+273.15; chon=get(handles.listbox1,ʹValueʹ); ifchon==1 t=k; elseifchon==2 t=c; elseifchon==3 t=r; end t=num2str(t); set(handles.edit3,ʹStringʹ,t); TatiếptụcxétphươngándùngRadiobutton.Giaodiệncódạng: Ta dùng ba Radiobutton thay cho Listbox. Radiobutton thứ nhất có thuộc tính FontSize: 12, FơntWeight: bold và String: Rankine. Radiobutton thứ 2  có thu ộc tính FontSize: 12, FơntWeight: bold và String: Celcius. Radibutton thứ 3 có thuộc tính FontSize: 12, FơntWeight: bold và  String: Kelvine.Cácphầntửkhácvàthuộctínhcủachúngvẫnnhưcũ.Layout có thuộctínhName: ct1_57.LưuGUIvớitênct1_57.fig.  Tiếptheotaviếtcácmãlệnhtrong ct1_57.m: functionvarargout=ct1_57(varargin) ifnargin==0  fig=openfig(mfilename,ʹreuseʹ);  set(fig,ʹColorʹ,get(0,ʹdefaultUicontrolBackgroundColorʹ));  handles=guihandles(fig); 50  guidata(fig,handles);  ifnargout>0 varargout{1}=fig;  end elseifischar(varargin{1})  try [varargout{1:nargout}]=feval(varargin{:}); catch disp(lasterr);  end end functionmutual_exclude(off) set(off,ʹValueʹ,0); functionvarargout=slider1_Callback(h,eventdata,handles,varargin) globalchon f=get(handles.slider1,ʹValueʹ); f=f*180+32; a=num2str(f);  set(handles.edit2,ʹStringʹ,a); r=f+495.7; c=(f‐32)*5/9; k=c+273.15; ifchon==1 t=r; elseifchon==2 t=c; elseifchon==3 t=k; end t=num2str(t); set(handles.edit3,ʹStringʹ,t); functionvarargout =radiobutton1_Callback(h,eventdata,handles,varargin) global chon; off = [handles.radiobutton2, handles.radiobutton3]; mutual_exclude(off); chon = 1; function varargout = radiobutton2_Callback(h, eventdata, handles, varargin) global chon; off = [handles.radiobutton1, handles.radiobutton3]; . end end functionvarargout=slider1_Callback(h,eventdata,handles,varargin) f=get(handles.slider1,ʹValueʹ); f=f*180+32; a=num2str(f); set(handles.edit2,ʹStringʹ,a); r=f+495.7; c =(f‐32)*5/9; k=c+273.15; chon=get(handles.popupmenu1,ʹValueʹ); ifchon==1 t=k; elseifchon==2 t=c; elseifchon==3 t=r; end t=num2str(t); set(handles.edit3,ʹStringʹ,t);  Tiếptheotaxéttrườnghợpdùnglistbox.ThayvìdùngPopupmenutadùng Listbox. Các phần tử khácvàthuộctính của nókhôngthayđổi.Thuộctính Name của Layoutlà  ct1_56.TavàoôString của Listboxvàghivàođó3dòng Kelvine,CelciusvàRankine.Giaodiệnnhưsau:  . đổinhiệtđộđầuvào.Giaodiệnsẽcó dạng:    Nhưvậytacần5phần tử, trongđócómộtphần tử làslidervà4phần tử EditText. Layout có thuộc tính Name: ct1_54, còn các thuộc tín h khác

Ngày đăng: 21/01/2014, 02:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan