Tải bản đầy đủ (.pdf) (10 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (303.37 KB, 10 trang )


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];

×