
Sử Dụng Listbox Và Checkbox Trong GUI Matlab
Listbox là đối tượng trong Matlab để chọn lựa các phần tử con, Checkbox là đối tượng có giá trị 0 và 1. Trong bài viết này VuTienIT cùng bạn học cách sử dụng 2 đối tượng trong GUI Matlab đó là Listbox và Checkbox để áp dụng vào từng trường hợp cụ thể.

| Listbox Matlab
Listbox là gì? Thực chất nếu bạn học các sử dụng đối tượng Pop-up Menu ở trong bài viết số 4 rồi thì Listbox cũng vậy. Nó chỉ khác ở phần giao diện và cách chọn các phần tử bên trong của nó thôi.
Như hình phía dưới là bảng so sánh 2 đối tượng Listbox và Pop-up Menu. Thay vì click vào mũi tên trỏ xuống của đối tượng Pop-up Menu để chọn phần tử bên trong là sin, cos, tan, log. Thì Listbox sẽ hiện ra luôn cho bạn chọn. Như vậy bạn đã thấy sự khác biệt của 2 đối tượng này chưa nào? Còn về chức năng thì hoàn toàn là như nhau.

Để bạn hiểu hơn về cách lấy dữ liệu của các phần tử bên trong Listbox thì chúng ta cùng tiến hành làm một ví dụ dưới đây.
Như bạn có thể thấy thì phần listbox VuTienIT tạo ra 4 phần tử con là sin, cos, tan, log có Tag là listbox1. Tiếp đó là đối tượng axes có Tag là axes1. Khi ta chọn sin hay cos,… thì đồ thị sẽ hiện ra ở trong đối tượng axes. Vậy làm sao làm được điều này? Bạn hãy chú ý theo dõi để hiểu bản chất vấn đề nhé.
Tạo phần tử bên trong Listbox.
- Chuột phải đối tượng chọn Property Inspector
- Tìm đến thuộc tính String và click vào
- Điền từng phần tử vào bảng String. Các phần tử phân biệt với nhau bằng cách nhấn Enter khi viết xong một phần tử.

Và bạn được kết quả ở hình dưới.

Bạn hãy di chuột vào Listbox và clich chuột phải chọn View Callbacks và chọn Callback. Nó sẽ đẫn đến function listbox1_Callback của file .m mà bạn đã lưu trước đó. Bây giờ bạn làm như sau.
Như đã nói vấn đề ta cần giải quyết ở trên đó là khi click chọn sin thì vẽ hình sin chẳng han. Chính vì điều này ta phải lấy giá trị của phần tử trong listbox ra và lưu vào một biến luaChon chẳng hạn từ đó mới sử lý từng trường hợp 1 được.
luaChon = get(handles.listbox1, 'value');
Vì ta lấy giá trị của nó là value bởi vậy tương ứng từng phần tử trong listbox sin, cos, tan, log là giá trị nhận về sẽ là 1,2,3,4.
Tiếp đó là ta cần phải xác định xem vẽ đồ thị lên đối tượng Axes nào bằng câu lệnh sau:
axes(handles.axes1);
Oke khi nhận được giá trị rồi thì ta sử dụng cấu trúc switch case để sử lý từng trường hợp.
switch luaChon case 1 t = -5:0.01:5; plot(t, sin(t)); case 2 t = -5:0.01:5; plot(t, cos(t)); case 3 t = -5:0.01:5; plot(t, tan(t)); case 4 t = -5:0.01:5; plot(t, log(t)); end
Chỉ cần vài dòng code trên là xong rồi đó. Bạn hãy chạy trương trình nên xem đã được chưa nhé.

Khá là đơn giản phải không. Vấn đề chính ta học đó là học cách tạo và sử dụng Listbox thôi. Khi có giá trị của đối tượng này rồi thì tùy vào từng bài toán cụ thể thì chúng ta sử lý.
| Checkbox Matlab
Checkbox là gì? Bạn chỉ cần hiểu theo một cách đơn giản đó là tắt và mở hay là 0 và 1. Khi check vào sẽ là 1 và khi bỏ check thì là 0.
Ta làm một ví dụ tiếp để bạn hiểu hơn. Như ví dụ trên bạn thấy thì khi vẽ đồ thị nên thì không biết bạn có để ý không đó là ta chưa vẽ dạng lưới vào đồ thị đúng không. Bây giờ ta sử dụng Checkbox để làm nhiệm vụ này. Đó là khi check vào thì sẽ Vẽ lưới và ngược lại khi bỏ check thì lưới ở đồ thị sẽ biến mất.

Ở Funtion của đối tượng Listbox bạn thêm dòng code dưới đây để lấy giá trị xem checkbox có được nhấn hay không?
batLuoi = get(handles.checkbox1, 'value');
Nó sẽ trả về 0 hoặc 1 tùy theo bạn check hay không. Ở trong mỗi case bạn thêm tiếp dòng lệnh bật lưới ở cuối case
if batLuoi == 1 grid on; else grid off; end
Trong đó
- grid on: Bật lưới
- grid off: Tắt lưới
Và bạn được kết quả như sau

Dưới đây là toàn bộ code để xử lý bài tập trên

Tổng kết:
Trên đây VuTienIT cùng bạn học cách sử dụng Listbox cũng như checkbox trong lập trình giao diện GUI của phần mền Matlab. Hi vọng bài viết này giúp ích bạn trong từng bài toán cụ thể nào đó mà bạn đang cần giúp đỡ. Chúc bạn thành công!