Hướng dẫn Matlab Guide

Cú pháp:

answer = inputdlg(prompt)

answer = inputdlg(prompt,title)

answer = inputdlg(prompt,title,lineNo)

answer = inputdlg(prompt,title,lineNo,defAns)

answer = inputdlg(prompt,title,lineNo,defAns,Resize)

Trong đó:

prompt  Các tring xuất hiện trên các hộp nhập liệu title  Tiêu đề của hộp thoại

lineNo  Số dòng trong ô nhập liệu

defAns  Kết quả nhập liệu mặc định (xuất hiện ban đầu)

resize  Cho phép hay không thay đổi kích thước dialog box

'on' hay 'off'

Ví dụ:

prompt = {'Enter matrix size:','Enter colormap name:'};

title = 'Input for peaks function';

lines= 1;

def = {'20','hsv'};

answer = inputdlg(prompt,title,lines,def);

 

doc32 trang | Chia sẻ: thienmai908 | Lượt xem: 1405 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Hướng dẫn Matlab Guide, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
edit_laymau,'enable','off') elseif value==2 %FSK set(handles.edit_Fc,'enable','off') set(handles.edit_Fmark,'enable','on') set(handles.edit_laymau,'enable','on') elseif value==3 %PSK set(handles.edit_Fc,'enable','on') set(handles.edit_Fmark,'enable','off') set(handles.edit_laymau,'enable','off') end % --- Executes on button press in pushbutton_BD. function pushbutton_BD_Callback(hObject, eventdata, handles) Biendieu(handles); % --- Executes during object creation, after setting all properties. function frame1_CreateFcn(hObject, eventdata, handles) handles=guihandles(gcbo); Biendieu(handles); % --- Ham bien dieu function Biendieu(handles) % Nhan chuoi so binary_seq=get(handles.edit_chuoiso,'string'); binary_seq=str2num(binary_seq); %Nhan gia tri toc do bit R=get(handles.edit_tocdo,'string'); R=eval(R); %Nhan gia tri Fc Fc=get(handles.edit_Fc,'string'); Fc=eval(Fc); %Nhan gia tri hang lay mau Sampling=get(handles.edit_laymau,'string'); Sampling=eval(Sampling); %Nhan gia tri Fmark(Fcmin) la tan so nho nhat cua song mang Fmark=get(handles.edit_Fmark,'string'); Fmark=eval(Fmark); %Nhan gia tri Fspace(Fcmin) la tan so cao nhat cua song mang Fspace=get(handles.edit_Fspace,'string'); Fspace=eval(Fspace); Fs=R*Sampling; %Xet muc duoc chon trong popupmenu LoaiBD=get(handles.popupmenu_BD,'value'); if LoaiBD==1 %ASK if (Fc>=(R*Sampling)/2) ErrorDlg('Fspace<Sampling*(R/2)'); return; end ve_digital(handles,binary_seq,Fs) out=ASK(handles,binary_seq,Fc,Fs,R); Pho_digital(handles,out); set(handles.text_title,'string','Bien dieu ASK') elseif LoaiBD==2 %FSK if (Fc>=(R*Sampling)/2) ErrorDlg('Fspace<Sampling*(R/2)'); return; end if (Fmark=R'); return; end ve_digital(handles,binary_seq,Fs) out=FSK(handles,binary_seq,[Fmark Fspace],Fs,R); Pho_digital(handles,out); set(handles.text_title,'string','Bien dieu FSK') elseif LoaiBD==3 %PSK if (Fc>=(R*Sampling)/2) ErrorDlg('Fspace<Sampling*(R/2)'); return; end ve_digital(handles,binary_seq,Fs) out=PSK(handles,binary_seq,Fc,Fs,R); Pho_digital(handles,out); set(handles.text_title,'string','Bien dieu PSK') end % Ham ve tin hieu so function ve_digital(handles,binary_seq,Fs) SAMPLING_FREQ=Fs; Ts=1/SAMPLING_FREQ; binary_seq=binary_seq(:); %Doi thanh cot no_sample=length(binary_seq); %Xet chieu dai chuoi amplitude=max(abs(binary_seq)); time=[1:(no_sample)]*Ts; ax=[min(time)/100 max(time) -2*amplitude 2*amplitude]; axes(handles.axes1) stair(time,binary_seq); %Ham ve tin hieu so axis(ax); set(gca,'XTickLabel',{'','','','','',''}); xlabel('Tin hieu nen','fontname','SVNhelvetica','fontsize',12,'color','r'); % --- Ham stair --- function [xo,yo]=stair(x,y) n=length(x); if nargin==1 y=x; x=1:n; end delta=(max(x)-min(x))/(n-1); nn=2*n; yy=zeros(nn+2,1); xx=yy; t=x(:)'-delta; xx(1:2:nn)=t; xx(2:2:nn)=t; xx(nn+1:nn+2)=t(n)+[delta;delta]; yy(2:2:nn)=y; yy(3:2:nn+1)=y; if nargout==0 plot(xx,yy) else xo=xx; yo=yy; end % Ham bien dieu ASK function out=ASK(handles,binary_seq,Fc,Fs,R) %Tao data cua dang song khong tro ve zero nrz x=wave_gen(handles,binary_seq,'unipolar_nrz',Fs,R); out=mixer(x,osc(Fc,Fs)); Ts=1/Fc; out=out(:); no_sample=length(out); amplitude=max(abs(out)); t=[1:(no_sample)]*Ts; ax=[min(t) max(t) -2*amplitude 2*amplitude] axes(handles.axes2) y=plot(t,out); axis(ax); set(gca,'XTickLabel',{'','','','','',''}); xlabel('Tin hieu sau khi bien dieu','fontname','SVNhelvetica','fontsize',12,'color','r'); % Ham tao dang song nrz function out=wave_gen(handles,binary_sequence,linecode,Fs,Rb) binary_sequence=binary_sequence(:); if (any(abs(binary_sequence)-sign(binary_sequence))) error('Khong phai tin hieu digital') end if strcmp(linecode,'unipolar_nrz') pulse='rect_nrz(Rb,Fs)'; b_seq=binary_sequence; elseif strcmp(linecode,'polar_nrz') pulse='rect_nrz(Rb,Fs)'; b_seq=bin2pol(handles,binary_sequence); else error('Ma khong phu hop') end x=(b_seq*eval(pulse))'; out=x(:); %Tao tin hieu khong tro ve zero function out=rect_nrz(Rb,Fs) out=ones(1,Fs/Rb); %Ham tao song mang function [carrier]=osc(fc,Fs) t=[1:50000]/Fs; carrier=sin(2*pi*t*fc); % Ham tron 2 tin hieu function [out]=mixer(in,fc) %Z=MIXER(X,Y) Tao chuoi Z: Z(n)=X(n)*Y(n) n=length(in); carrier=fc(1:n); x=in; x=x(:)'; out=carrier.*x; % Ham ve pho function Pho_digital(handles,x) x=x(:); xx=fft(x,512); Pxx=xx.*conj(xx)/512; f=1000*(0:255)/512; no_sample=length(Pxx); amplitude=max(abs(Pxx)); ax=[min(f) max(f) -2*amplitude 2*amplitude] axes(handles.axes3) plot(f,Pxx(1:256),'r'); axis(ax); set(gca,'XTickLabel',{'','','','','',''}); xlabel('Pho cua song bien dieu','fontname','SVNhelvetica','fontsize',12,'color','r'); %Ham bien dieu FSK function out=FSK(handles,binary_seq,Fc,Fs,Rb) CARRIER_FREQUENCY=[min(Fc) max(Fc)]; x=wave_gen(handles,binary_seq,'polar_nrz',Fs,Rb); f_r=(CARRIER_FREQUENCY(2)+CARRIER_FREQUENCY(1))/2 kf=(CARRIER_FREQUENCY(2)-CARRIER_FREQUENCY(1))/2 out=vco_digital(x,f_r,kf,Fs); Ts=1/f_r; out=out(:); no_sample=length(out); amplitude=max(abs(out)); t=[1:(no_sample)]*Ts; ax=[min(t) max(t) -2*amplitude 2*amplitude] axes(handles.axes2) y=plot(t,out); axis(ax); set(gca,'XTickLabel',{'','','','','',''}); xlabel('Tin hieu sau khi bien dieu','fontname','SVNhelvetica','fontsize',12,'color','r'); % Ham luong cuc hoa chuoi nhi phan vao function [polar_sequence]=bin2pol(handles,binary_sequence) polar_sequence=2*binary_sequence-ones(size(binary_sequence)); % Dao dong duoc dieu khien bang dien the function [out]=vco_digital(in,arg2,arg3,Fs) Ts=1/Fs; fc=arg2; kf=arg3; lenfc=ones(length(in),1)*fc; phase=cumsum((lenfc+in*kf)*Ts*2*pi); out=sin(phase); % Ham bien dieu PSK function out=PSK(handles,binary_seq,Fc,Fs,Rb) x=wave_gen(handles,binary_seq,'polar_nrz',Fs,Rb); out=mixer(x,osc(Fc,Fs)); Ts=1/Fc; out=out(:); no_sample=length(out); amplitude=max(abs(out)); t=[1:(no_sample)]*Ts; ax=[min(t) max(t) -2*amplitude 2*amplitude] axes(handles.axes2) plot(t,out); axis(ax); set(gca,'XTickLabel',{'','','','','',''}); xlabel('Tin hieu sau khi bien dieu','fontname','SVNhelvetica','fontsize',12,'color','r'); 3. Chạy ứng dụng: IX.CÁC HỘP HỘI THOẠI DIALOG CỦA WINDOWS ™ Các hộp thoại dialog: Dialog boxes Ý nghĩa errordlg Tạo dialog box báo lỗi helpdlg Hiển thị một dialog box giúp đỡ inputdlg Tạo một dialog box nhập liệu listdlg Tạo một dialog danh sách chọn lựa msgbox Tạo một dialog box thông tin pagedlg Tạo một dialog box page layout printdlg Hiển thị một dialog in Dialog boxes Ý nghĩa questdlg Tạo một dialog hỏi uigetfile Hiển thị dialog box nhận tên của file cần đọc uiputfile Hiển thị dialog box nhận tên của file để ghi uisetcolor Chọn màu bằng bảng màu của windows uisetfont Chọn font warndlg Tạo một dialog cảnh báo CHƯƠNG 7: GUI VÀ ỨNG DỤNG IX.CÁC HỘP HỘI THOẠI DIALOG CỦA WINDOWS 1. errordlg Cú pháp: errordlg errordlg('errorstring') errordlg('errorstring','dlgname') errordlg('errorstring','dlgname','on') %'on' Î cho phép hay không thay thế dialog có cùng tên h = errordlg(...) Ví dụ: errordlg('File not found','File Error') 2. helpdlg Cú pháp: helpdlg helpdlg('helpstring') helpdlg('helpstring','dlgname') h = helpdlg(...) Ví dụ: helpdlg('Choose 10 points from the figure','Point Selection'); 3. inputdlg Cú pháp: answer = inputdlg(prompt) answer = inputdlg(prompt,title) answer = inputdlg(prompt,title,lineNo) answer = inputdlg(prompt,title,lineNo,defAns) answer = inputdlg(prompt,title,lineNo,defAns,Resize) Trong đó: prompt Î Các tring xuất hiện trên các hộp nhập liệu title Î Tiêu đề của hộp thoại lineNo Î Số dòng trong ô nhập liệu defAns Î Kết quả nhập liệu mặc định (xuất hiện ban đầu) resize Î Cho phép hay không thay đổi kích thước dialog box 'on' hay 'off' Ví dụ: prompt = {'Enter matrix size:','Enter colormap name:'}; title = 'Input for peaks function'; lines= 1; def = {'20','hsv'}; answer = inputdlg(prompt,title,lines,def); 4. listdlg Cú pháp: [Selection,ok] = listdlg('ListString',S,...) % Cho phép chọn một hay nhiều item trong danh sách Trong đó: „ Selection Î vector chứa các string được chọn „ ok = 1 Î khi chọn nút OK 0 Î khi chọn cancel hoặc đóng hộp thoại „ S là các thông số trong bảng sau: Parameter Ý nghĩa 'ListString' Dãy các chuỗi để chọn nằm trong list box 'single' chỉ cho chọn 1 'SelectionMode' 'multiple' (the default) cho phép chọn nhiều 'ListSize' Kích thước list box, tính bằng pixel,là vector [width height]. Mặc định là [160 300] 'InitialValue' Item được chọn ban đầu. Mặc định là 1 (item đầu) 'Name' Tieu đề của dialog box. Mặc định là ' ' 'PromptString' Các string xuất hiện phía trên listbox. Mặc định {} 'OKString' String cho nút nhấn OK. Mặc định là 'OK' 'CancelString' String cho nút nhấn Cancel. Mặc định là 'Cancel'. Ví dụ: d=dir; str={d.name}; [s,v]=listdlg('PromptString','Select a file:','SelectionMode','single','ListString',str) 5. msgbox Cú pháp: msgbox(message) msgbox(message,title) msgbox(message,title,'icon') msgbox(message,title,'custom',iconData,iconCmap) msgbox(...,'createMode') h = msgbox(...) Trong đó: 'icon' Î là {'none','error','help','warn','custom'} iconData Î chứa dữ liệu ảnh tạo nên icon iconCmap Î Màu dùng cho ảnh 'createMode' Î {'modal','non-modal', 'replace'} Ví dụ: msgbox('Day la icon giup do','Vi du ve msgbox','help') msgbox('Day la icon bao loi','Vi du ve msgbox','error') msgbox('Day la icon canh bao','Vi du ve msgbox','warn') msgbox('Day la icon binh thuong','Vi du ve msgbox') 6. pagedlg Cú pháp: pagedlg pagedlg(fig) 7. printdlg Cú pháp: printdlg printdlg(fig) printdlg('-crossplatform',fig) printdlg('-setup',fig) Ví dụ: printdlg(fig) Î in cửa sổ đồ họa được chỉ định printdlg('-crossplatform',fig) Î sử dụng chuẩn của Matlab printdlg('-setup',fig) Î cho phép cài đặt thông số in 8. questdlg Cú pháp: button = questdlg('qstring') button = questdlg('qstring','title') button = questdlg('qstring','title','default') button = questdlg('qstring','title','str1','str2','default') button = questdlg('qstring','title','str1','str2','str3','default') % hộp thoại có 3 nút 'Yes', 'No', 'Cancel‘ % button nhận giá trị trả về Trong đó: 'default' Î Nút chọn mặc định {'Yes', 'No', 'Cancel'} 'str1','str2','str3' Î Tạo các nút nhấn có tên… Ví dụ: button = questdlg('Do you want to continue?',... 'Continue Operation','Yes','No','Help','No'); if strcmp(button,'Yes') disp('Creating file') elseif strcmp(button,'No') disp('Canceled file operation') elseif strcmp(button,'Help') disp('Sorry, no help available') end 9. uigetfile Cú pháp: uigetfile uigetfile('FilterSpec') uigetfile('FilterSpec','DialogTitle') uigetfile('FilterSpec','DialogTitle',x,y) [fname,pname] = uigetfile(...) Trong đó: 'FilterSpec' Î Lọc chọn các tập tin. Mặc định là *.m [x,y] Î Vị trí xuất hiện hộp thoại [fname,pname] Î Trả về tên tập tin và đường dẫn Ví dụ: >> [fname,pname] = uigetfile('*.m','Sample Dialog Box') fname = canhhoa.m pname = D:\work\ 10. uiputfile Cú pháp: uiputfile uiputfile('InitFile') uiputfile('InitFile','DialogTitle') uiputfile('InitFile','DialogTitle',x,y) [fname,pname] = uiputfile(...) Trong đó: 'InitFile' Î Hộp thoại hiển thị các file trong thư mục hiện hành xác định bởi 'InitFile' [fname,pname] Î Trả về tên file và đường dẫn ghi file Ví dụ: >> [newfile,newpath] = uiputfile('animinit.m','Save file name'); newfile = animinit.m newpath = D:\work\ 11. warndlg Cú pháp: h = warndlg('warningstring','dlgname') Ví dụ: warndlg('Pressing OK will clear memory','!! Warning !!')

Các file đính kèm theo tài liệu này:

  • docTaiLieuTongHop.Com---Huong dan Matlab Guide.doc