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);
32 trang |
Chia sẻ: thienmai908 | Lượt xem: 1418 | Lượt tải: 0
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:
- TaiLieuTongHop.Com---Huong dan Matlab Guide.doc