Bài tập lớn Matlab và ứng dụng - Lập trình Guide giao diện
Phụ lục:
PHẦN 1: SƠ LƯỢC VỀ LẬP TRÌNH GIAO DIỆN NGƯỜI DÙNG (GUIDE) TRONG
MATLAB .Trang 04
I. GUI LÀ GÌ?
II. BẮT ĐẦU VỚI GUI!
III. CÁC BƯỚC CẦN THỰC HIỆN TRƯỚC KHI BẮT ĐẦU
PHẦN 2: BẮT ĐẦU THAO TÁC VỚI GUI .Trang 06
I. KHỞI ĐỘNG GUI .Trang 06
II. MÔ TẢ CHỨC NĂNG CÁC CÔNG CỤ TRONG GIAO DIỆN GUI .Trang 07
III. CHỈ NH SỬA HỘP THOẠI INSPECTOR Trang 08
PHẦN 3: THIẾT KẾ GIAO DIỆN (GUI) .Trang 10
I. THIẾT KẾ GIAO DIỆN Trang 10
II. MỘT VÀI THUỘC TÍNH CỦA ĐỐI TƯỢNG TRONG MENU
INSPECTOR .Trang 11
III. MỘT VÀI CHỨC NĂNG MỞ RỘNG .Trang 14
PHẦN 4 : THỰC THI HÀM TRONG GUIDE .Trang 17
I. GIAO DIỆN TRONG MFILE .Trang 17
II. MỘT SỐ HÀM TRONG GUI . .Trang 18
III. KHÁI NIỆM BIẾN HỆ THỐNG .Trang 19
PHẦN 5: LẬP TRÌNH CÁC ĐỐI TƯỢNG Trang 20
I. NÚT NHẤN DEGREE TRONG BẢNG SELECT INPUT .Trang 20
II. NÚT NHẤN DEGREE TRONG BẢNG SELECT INPUT .Trang 21
III. NÚT NHẤN DẤU = Trang 21
IV. EDIT TEXT NHÂP X .Trang 24
V. NÚT NHẤN PLOT .Trang 26
VI. CHECK BOX HOLD ON VÀ GRID ON .Trang 29
VII. NÚT NHẤN DEFAULT Trng 29
VIII. CHECKBOX COLOR ON Trang 29
IX. NÚT EXIT .Trang 31
PHẦN 6: CÁCH SỬ DỤNG GIAO DIỆN .Trang 32
PHẦN 7: CHƯƠNG TRÌNH: .Trang 35
ckgroundColor',[0.94,0.94,0.94]);
set(handles.exit,'Color',[0.94,0.94,0.94]);
set(handles.option,'BackgroundColor',[0.94,0.94,0.94]);
set(handles.axes1,'Color','w');
set(handles.button,'BackgroundColor',[0.94,0.94,0.94]);
end
[Type text] Page 31
+ Hàm get(handles.color,'Value')==1;
Đã được giải thích ở phần trên. Giả sử nếu ô Color on được chọn hàm trên sẽ thực thi:
+ set(handles.input,'BackgroundColor','b');
b = blue (xem bảng)
Ở đây để đặt thuộc tính màu bất kì cho đối tượng ta sử dụng lệnh có cấu trúc:
Set(handles.nhãn_ex,’thuộc_tính’,’màu’)
Hoặc
Set(handles.nhãn_ex,’thuộc_tính’,[mã_màu])
+ Nhãn_ex là thuộc tính Tag của đối tượng
+ Thuộc_tính là thuộc tính màu của đối tượng, có thể là màu nền, màu Font
chữ…. Xem thuộc tính màu phía bên trái của Menu Inspector
+ Màu: là các màu đã được mã hóa bằng kí tự.
+ Mã_màu: là mã màu của đối tượng (xem hướng dẫn ở trên).
- Như vậy với bất cứ thuộc tính nào ta ta đều có thể chỉnh màu cho chúng.
- Cấu trúc if-else để xét thuộc tính của ô color on tương ứng với được chọn hoặc không
chọn
IX. NÚT EXIT:
Gọi callback của nút Exit và viết vào các lệnh sau:
function exit_Callback(hObject, eventdata, handles)
set(handles.all,’Visible’,’off’)
- Thuộc tính Visible = off cho phép ẩn cửa sổ giao diện có Tag là all, ở đây là cửa sổ nền
giao diện, tương ứng với thoát khỏi giao diện
[Type text] Page 32
PHẦN 6: CÁCH SỬ DỤNG GIAO DIỆN
- Để bắt đầu với giao diện, chúng ta làm theo một trong những cách sau:
+ Trong màn hình thiết kế giao diện, nhấn phím F5 trên bàn phím
+ Nhấn vào biểu tượng nút Play trong màn hình thiết kế giao diện
+ Trong màn hình thao tác trên Mfile, nhấn phím F5 để chạy chương trình
- Trước khi muốn sử dụng ta có thể sắp xếp các menu theo trình tự tùy ý.
I. TÍNH HÀM LƯỢNG GIÁC
Bước 1: chọn hàm cần tính từ menu đổ xuống:
Bước 2: nhập giá trị vào trong ô input
Bước 3: chọn giá trị nhập vào ở ô input theo bảng Select Input (Degree hoặc Radian)
Bước 4: nhấn vào dấu bằng
- Kết quả phép tính sẽ được hiển thị ở ô output
[Type text] Page 33
II. VẼ HÀM SỐ LƯỢNG GIÁC
Bước 1: Chọn hàm muốn vẽ:
Bước 2: Nhập vào khoảng giá trị của x
Chú ý: x phải được nhập đúng dạng đã được đề cập trong phần thiết kế giao
diện.
Bước 3: Nhấn nút Plot để vẽ hàm
[Type text] Page 34
+ Có thể tùy chọn bật lưới điểm, giữ hàm cũ khi vẽ hàm mới…:
III. SỬ DỤNG NÚT COLOR ON
Đánh dấu vào ô Color on để bật màu cho giao diện, bổ chọn sẽ trở về màu mặc định.
IV. SỬ DỤNG NÚT EXIT
Nếu bạn không muốn sử dụng nữa, nhấn vào nút Exit, cửa sổ mới hiện ra với tiêu đề “are
you sure you want to Close ?, chọn “Yes” để đóng giao diện, chọn “No” để trở lại màn
hình giao diện
- Khi nhấn vào Nút Default, tất cả các trạng thái sẽ quay về ban đầu
[Type text] Page 35
PHẦN 7: CHƯƠNG TRÌNH
function varargout = baitaplonMatlab_bai_1(varargin)
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @baitaplonMatlab_bai_1_OpeningFcn, ...
'gui_OutputFcn', @baitaplonMatlab_bai_1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before baitaplonMatlab_bai_1 is made visible.
function baitaplonMatlab_bai_1_OpeningFcn(hObject, eventdata, handles,
varargin)
% Choose default command line output for baitaplonMatlab_bai_1
handles.output = hObject;
handles.unit_input = 0;
% Update handles structure
guidata(hObject, handles);
% --- Outputs from this function are returned to the command line.
function varargout = baitaplonMatlab_bai_1_OutputFcn(hObject, eventdata,
handles)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes during object creation, after setting button properties.
function ham_CreateFcn(hObject, eventdata, handles)
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes during object creation, after setting button properties.
function input_CreateFcn(hObject, eventdata, handles)
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
[Type text] Page 36
end
% --- Executes on button press in degree.
function degree_Callback(hObject, eventdata, handles)
b = str2num(get(handles.input,'string'));
handles.unit_input = b*pi/180
guidata(hObject, handles)
% --- Executes on button press in radian.
function radian_Callback(hObject, eventdata, handles)
handles.unit_input = str2num(get(handles.input,'string'));
guidata(hObject, handles)
% --- Executes during object creation, after setting button properties.
function x_input_CreateFcn(hObject, eventdata, handles)
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in plotx.
function plotx_Callback(hObject, eventdata, handles)
set(handles.nhan,'Visible','on');
c=eval(get(handles.x_input,'string'));
if get(handles.ham,'Value') == 1;
plot(handles.axes1,c,sin(c),'LineWidth',2);
elseif get(handles.ham,'Value') == 2;
plot(handles.axes1,c,cos(c),'LineWidth',2);
elseif get(handles.ham,'Value') == 3;
plot(handles.axes1,c,tan(c),'LineWidth',2);
elseif get(handles.ham,'Value') == 4;
plot(handles.axes1,c,cot(c),'LineWidth',2);
elseif get(handles.ham,'Value') == 5;
plot(handles.axes1,c,asin(c),'LineWidth',2);
elseif get(handles.ham,'Value') == 6;
plot(handles.axes1,c,acos(c),'LineWidth',2);
elseif get(handles.ham,'Value') == 7;
plot(handles.axes1,c,atan(c),'LineWidth',2);
elseif get(handles.ham,'Value') == 8;
plot(handles.axes1,c,acot(c),'LineWidth',2);
elseif get(handles.ham,'Value') == 9;
plot(handles.axes1,c,sinh(c),'LineWidth',2);
elseif get(handles.ham,'Value') == 10;
plot(handles.axes1,c,cosh(c),'LineWidth',2);
elseif get(handles.ham,'Value') == 11;
plot(handles.axes1,c,tanh(c),'LineWidth',2);
elseif get(handles.ham,'Value') == 12;
plot(handles.axes1,c,coth(c),'LineWidth',2);
end
if get(handles.grid,'Value') == 1
grid on
else
grid off
[Type text] Page 37
end
if get(handles.hold,'Value') == 1
hold on
else
hold off
end
% --- Executes on button press in grid.
function grid_Callback(hObject, eventdata, handles)
set(handles.axes1);
grid
% --- Executes on button press in hold.
function hold_Callback(hObject, eventdata, handles)
set(handles.axes1);
hold
% --- Executes on button press in ok.
function ok_Callback(hObject, eventdata, handles)
d=handles.unit_input
y=get(handles.ham,'Value')
if y==1;
e=sin(d)
elseif y==2;
e=cos(d)
elseif y==3;
e=tan(d);
elseif y==4;
e=cot(d);
elseif y==5;
e=asin(d);
elseif y==6;
e=acos(d);
elseif y==7;
e=atan(d);
elseif y==8;
e=acot(d);
elseif y==9;
e=sinh(d);
elseif y==10;
e=cosh(d);
elseif y==11;
e=tanh(d);
elseif y==12;
e=coth(d);
end
if and(e-0.000001)
set(handles.kq,'string','0');
elseif or(e>1000,e<-1000)
set(handles.kq,'string','Math error');
else
set(handles.kq,'string',num2str(e));
end
guidata(hObject,handles)
% --- Executes on button press in clc.
function clc_Callback(hObject, eventdata, handles)
[Type text] Page 38
set(handles.input,'string','');
set(handles.kq,'string','');
set(handles.x_input,'string','');
set(handles.hold,'Value',0);
set(handles.grid,'Value',0);
set(handles.color,'Value',0);
set(handles.ham,'Value',1);
set(handles.axes1,'Visible','off');
set(handles.axes1);
cla;
set(handles.nhan,'Visible','off');
% --- Executes when user attempts to close button.
function all_CloseRequestFcn(hObject, eventdata, handles)
% Hint: delete(hObject) closes the figure
delete(hObject);
% --- Executes on button press in color.
function color_Callback(hObject, eventdata, handles)
if get(handles.color,'Value')==1;
set(handles.input,'BackgroundColor','b');
set(handles.kq,'BackgroundColor','y');
set(handles.all,'Color',[0.73,0.83,0.96]);
set(handles.option,'BackgroundColor',[1,0.69,0.39]);
set(handles.axes1,'Color',[0.95,0.87,0.73]);
set(handles.exit,'BackgroundColor','red');
else
set(handles.input,'BackgroundColor','white');
set(handles.kq,'BackgroundColor',[0.94,0.94,0.94]);
set(handles.all,'Color',[0.94,0.94,0.94]);
set(handles.option,'BackgroundColor',[0.94,0.94,0.94]);
set(handles.axes1,'Color','w');
set(handles.exit,'BackgroundColor',[0.94,0.94,0.94]);
end
% --- Executes on button press in exit.
function exit_Callback(hObject, eventdata, handles)
set(handles.all,'Visible','off');
function x_input_Callback(hObject, eventdata, handles)
set(handles.plotx,'Enable','off');
try
t = eval(get(handles.x_input,'String'));
if ~isnumeric(t)
set(handles.plotx,'String','t is not numeric')
elseif length(t) < 2
set(handles.plotx,'String','t must be vector')
elseif min(diff(t)) < 0
set(handles.plotx,'String','t must increase')
else
set(handles.plotx,'String','Plot')
[Type text] Page 39
set(handles.plotx,'Enable','on')
return
end
catch
set(handles.plotx,'String','Cannot plot t');
end
[Type text] Page 40
Tài liệu tham khảo:
Website:
Matlab: Examples, Help
Thông tin Sinh viên:
Họ tên: Nguyễn Lương Thành
Lớp: 09040003
MSSV: 40900040
Khóa: ĐH 13
Email: thanhnl0502@gmail.com
ĐT: 01648911181
File đính kèm:
Bài tập lớn Matlab và ứng dụng - Lập trình Guide giao diện.pdf
Mã nguồn.rar

