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