THỰC HÀNH MATLAB CƠ BẢN WORKSHEET 06: LẬP TRÌNH GIAO DIỆN TRONG MATLAB Thái Duy Quý ITFac – thaiduyquy@gmail.com – Mục đích: Worksheet giới thiệu lệnh lập trình giao diện MATLAB Yêu cầu: - Sinh viên thực hành phần mềm Matlab phòng máy, đọc kỹ phần luyện tập trước làm tập - Kết lưu lại thư mục MSSV_HoTen - Thời gian thực hành: tiết Luyện tập: Chương trình Calculator Có nhiều cách để tạo chương trình "Máy tính bấm tay" hay Calculator Ví dụ sau hướng dẫn tạo chương trình máy tính bấm tay đơn giản sử dụng kỹ thuật trùng "Callback" lập trình giao diện GUI Sử dụng GUIDE, thiết kế giao diện chương trình sau: Đặt thuộc tính cho đối tượng sau: Thái Duy Quý – thaiduyquy@gmail.com THỰC HÀNH MATLAB CƠ BẢN - Edit Text: Tag=edit1 (mặc định); FontSize=20; Enable=Inactive; HorizontalAligment=right; - Đặt thuộc tính Tag tất nút là: pushadd (ngoại trừ nút: "=" "%" "C") - Nút "=": Tag=pushequal - Nút "%": Tag=pushpercent - Nút "C": Tag=pushclear Điều chỉnh kích thước sử dụng công cụ "Align Objects" để xếp vị trí nút hình Lưu lại fig-file với tên mycalc.fig, file mycalc.m tìm hàm tương ứng thêm vào lệnh sau: % - Executes on button press in pushadd function pushadd_Callback(hObject, eventdata, handles) textstr = get(handles.edit1,'String'); addstr = get(hObject,'String'); newstr = strcat(textstr, addstr); set(handles.edit1,'String', newstr) % - Executes on button press in pushequal function pushequal_Callback(hObject, eventdata, handles) textstr = get(handles.edit1,'String'); try set(handles.edit1,'String', eval(textstr)) catch err set(handles.edit1,'String', err.message) end % - Executes on button press in pushpercent function pushpercent_Callback(hObject, eventdata, handles) textstr = get(handles.edit1,'String'); try set(handles.edit1,'String', 100*eval(textstr)) Thái Duy Quý – thaiduyquy@gmail.com THỰC HÀNH MATLAB CƠ BẢN catch err set(handles.edit1,'String', err.message) end % - Executes on button press in pushclear function pushclear_Callback(hObject, eventdata, handles) set(handles.edit1,'String','') Lưu lại file mycalc.m chạy chương trình Sử dụng chuột click nút để nhập vào phép tính, sau Click nút "=" để thu kết quả: Cuối cùng, Click nút "C" để bắt đầu phép tính khác Giải phương trình bậc Chạy Matlab, vào Menu File\New\GUI thấy hộp thoại sau: Thái Duy Quý – thaiduyquy@gmail.com THỰC HÀNH MATLAB CƠ BẢN Chọn Blank GUI, nhấn OK Trong hộp thoại ra, kéo thả điều khiển Push button, Edit Text Static Text vào figure giao diện sau: Mỗi điều khiển có nhiều thuộc tính, có thuộc tính quan trọng là: Tag, String Tag thuộc tính địa điều khiển (dùng để gọi cần) String thuộc tính chứa nội dung (sẽ hiển thị ngoài) điều khiển Sau ta đặt thuộc tính này: Thái Duy Quý – thaiduyquy@gmail.com THỰC HÀNH MATLAB CƠ BẢN - Push button 1: + Tag : start + String : Bat dau - Push button 2: + Tag : close + String : Close - Edit Text 1: + Tag : heso_a + String : (xóa trắng) - Edit Text 2: + Tag : heso_b + String : (xóa trắng) - Edit Text 3: + Tag : heso_c + String : (xóa trắng) - Edit Text 4: + Tag : nghiem_x1 + String : (xóa trắng) - Edit Text 5: + Tag : nghiem_x2 + String : (xóa trắng) - Static Text 1: (Đối với Static Text thuộc tính Tag không quan trọng, trừ trường hợp đặc biệt) + String : Giai phương trinh bac 2: ax2 + bx + c = Thái Duy Quý – thaiduyquy@gmail.com THỰC HÀNH MATLAB CƠ BẢN - Static Text 2: + String : a = - Static Text 3: + String : b = - Static Text 4: + String : c = - Static Text 5: + String : Ket luan - Static Text 6: + Tag : kl + String : (xóa trắng) - Static Text 7: + String : x1 = - Static Text 8: + String : x2 = - figure: (click đúp vào figure): + Tag : fig1 + Name : Giai phương trinh bac Sau đặt thuộc tính, chỉnh (sử dụng chuột công cụ Align Objecs) figure có dạng sau: Thái Duy Quý – thaiduyquy@gmail.com THỰC HÀNH MATLAB CƠ BẢN Lưu lại figure (Menu File\Save) tên GPTB2.fig Sau Matlab tự sinh file GPTB2.m; file tìm hàm start_callback đánh vào dòng lệnh sau: Hàm set hàm đặt thuộc tính cho điều khiển Hàm get hàm lấy giá trị thuộc tính điều khiển Hàm str2double hàm biến chuỗi thành số Thái Duy Quý – thaiduyquy@gmail.com THỰC HÀNH MATLAB CƠ BẢN Cuối ghi lại file m (GPTB2.m) chạy chương trình (nhấn F5 nút run hình tam giác màu xanh) Nhập vào hệ số a, b, c click nút Bat dau để xem kết Bài tập Bài : Tạo giao diện GUI thực nhiệm vụ sau: Tính diện tích đa giác dựa cạnh với liệu X Y Tô màu cho đa giác với liệu X, Y người dùng nhập vào màu chọn từ popup menu (Gợi ý: sử dụng lệnh polyarea fill) Bài : Viết giao diện thực yêu cầu sau: 1) Cho phép chọn thực thi hàm sau: y=sin(x), y=cos(x), y=tg(x), y=cotg(x), y=arcsin(x), y=arcos(x), y=arctg(x), y=arccotg(x), y=sinh(x), y=cosh(x), y=tgh(x), y=cotgh(x) 2) Cho phép chọn nhập/hiển thị theo độ Radian 3) Cho phép nhập khoảng giá trị x 4) Hiển thị đồ thị hàm chọn theo giá trị x nhập vào câu lên giao diện, có nút cho phép giữ xóa hình vẽ hàm Thái Duy Quý – thaiduyquy@gmail.com THỰC HÀNH MATLAB CƠ BẢN Bài 3: Viết chương trình cho phép người dùng nhập hệ số đa thức bậc n Vẽ đồ thị hàm số đa thức Hết Thái Duy Quý – thaiduyquy@gmail.com ... String : b = - Static Text 4: + String : c = - Static Text 5: + String : Ket luan - Static Text 6: + Tag : kl + String : (xóa trắng) - Static Text 7: + String : x1 = - Static Text 8: + String