Top Banner
GIỚI THIỆU VỀ GIỚI THIỆU VỀ LẬP TRÌNH LẬP TRÌNH MATLAB MATLAB
26

Laptrinh Gui Matlab

Oct 28, 2015

Download

Documents

Đào Nguyễn
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Laptrinh Gui Matlab

GIỚI THIỆU VỀ GIỚI THIỆU VỀ LẬP TRÌNH LẬP TRÌNH

MATLABMATLAB

Page 2: Laptrinh Gui Matlab

.SƠ LƯỢC VỀ LẬP TRÌNH .SƠ LƯỢC VỀ LẬP TRÌNH MATLABMATLAB

.LẬP TRÌNH GIAO DIỆN GUI .LẬP TRÌNH GIAO DIỆN GUI TRONG MATLABTRONG MATLAB

Page 3: Laptrinh Gui Matlab

SƠ LƯỢC LẬP TRÌNH MATLABSƠ LƯỢC LẬP TRÌNH MATLAB

Page 4: Laptrinh Gui Matlab

Môi trường MATLAB là môi trường lập trình được xem “là sinh Môi trường MATLAB là môi trường lập trình được xem “là sinh ra dùng để tính toán kỹ thuật “. Mặc dù ở mỗi chuyên ngành ra dùng để tính toán kỹ thuật “. Mặc dù ở mỗi chuyên ngành

hẹp vẫn có những phần mềm tiện lợi hơn MATLAB, nhưng hẹp vẫn có những phần mềm tiện lợi hơn MATLAB, nhưng MATLAB được cho điểm cao nhờ nhiều lợi thế như:MATLAB được cho điểm cao nhờ nhiều lợi thế như:

- Ngôn ngữ trong sáng, không đòi hỏi biết nhiều thủ tục (cái - Ngôn ngữ trong sáng, không đòi hỏi biết nhiều thủ tục (cái này matlab giống java, giúp mọi người học ngôn ngữ dễ dàng này matlab giống java, giúp mọi người học ngôn ngữ dễ dàng hơn, không phức tạp hơn C).Để người lập trình trên thế giới hơn, không phức tạp hơn C).Để người lập trình trên thế giới (vốn quen với ngôn ngữ C) học matlab nhanh hơn, ngôn ngữ (vốn quen với ngôn ngữ C) học matlab nhanh hơn, ngôn ngữ

matlab khá giống ngôn ngữ C, và các chương trình của matlab khá giống ngôn ngữ C, và các chương trình của matlab có thể được dịch thành chương trình C.matlab có thể được dịch thành chương trình C.

- Tổ chức bộ nhớ để lưu trữ các mảng rất tốt, các tính toán - Tổ chức bộ nhớ để lưu trữ các mảng rất tốt, các tính toán trên mảng được matlab thực hiện cực kỳ nhanh.trên mảng được matlab thực hiện cực kỳ nhanh.

Page 5: Laptrinh Gui Matlab

- Có thể nhanh chống thấy được kết quả của từng lệnh, nên dễ Có thể nhanh chống thấy được kết quả của từng lệnh, nên dễ dàng kiểm tra chương trình. Đa số các ngôn ngữ khác cần phải dàng kiểm tra chương trình. Đa số các ngôn ngữ khác cần phải biên dịch cả một chương trình không có lỗi rồi mới chạy, hoặc biên dịch cả một chương trình không có lỗi rồi mới chạy, hoặc

chạy chế độ debug cũng khá tốn thời gian.chạy chế độ debug cũng khá tốn thời gian.+ Các bộ công cụ (toolbox) được phát triển trên nền matlab khá + Các bộ công cụ (toolbox) được phát triển trên nền matlab khá dễ dàng, mỗi toolbox có một số lệnh, mỗi lệnh được đặt trong dễ dàng, mỗi toolbox có một số lệnh, mỗi lệnh được đặt trong một file test khá đơn giản. Nhờ cơ chế này mà người ta nhanh một file test khá đơn giản. Nhờ cơ chế này mà người ta nhanh chống phát triển matlab để phục vụ nghiên cứu trong từng lĩnh chống phát triển matlab để phục vụ nghiên cứu trong từng lĩnh vực cụ thể (ví dụ : có toolbox dành cho việc tối ưu hóa, có cái vực cụ thể (ví dụ : có toolbox dành cho việc tối ưu hóa, có cái dành cho chuẩn truyền thông 802.11, có cái dùng để tính toán dành cho chuẩn truyền thông 802.11, có cái dùng để tính toán

thiết kế ô tô,…) có thể nói cơ chế mở như vậy làthiết kế ô tô,…) có thể nói cơ chế mở như vậy là yếu tố chính để yếu tố chính để matlab ngày càng thông dụng.matlab ngày càng thông dụng.

Page 6: Laptrinh Gui Matlab

+ + Các bộ công cụ (toolbox) được phát triển trên nền matlab khá dễ dàng, mỗi Các bộ công cụ (toolbox) được phát triển trên nền matlab khá dễ dàng, mỗi toolbox có một số lệnh, mỗi lệnh được đặt trong một file test khá đơn giản. toolbox có một số lệnh, mỗi lệnh được đặt trong một file test khá đơn giản.

Nhờ cơ chế này mà người ta nhanh chống phát triển matlab để phục vụ nghiên Nhờ cơ chế này mà người ta nhanh chống phát triển matlab để phục vụ nghiên cứu trong từng lĩnh vực cụ thể (ví dụ : có toolbox dành cho việc tối ưu hóa, có cứu trong từng lĩnh vực cụ thể (ví dụ : có toolbox dành cho việc tối ưu hóa, có cái dành cho chuẩn truyền thông 802.11, có cái dùng để tính toán thiết kế ô tô,cái dành cho chuẩn truyền thông 802.11, có cái dùng để tính toán thiết kế ô tô,…) có thể nói cơ chế mở như vậy là tếu tố chính để matlab ngày càng thông …) có thể nói cơ chế mở như vậy là tếu tố chính để matlab ngày càng thông

dụng.dụng.+ MATLAB có các phiên bản chạy được trên mỗi hệ đều hành khác nhau, + MATLAB có các phiên bản chạy được trên mỗi hệ đều hành khác nhau,

việc trao đổi dữ liệu giữa các phiên bản có thể đơn thaun62 là trao đổi file test việc trao đổi dữ liệu giữa các phiên bản có thể đơn thaun62 là trao đổi file test (các file.m). Ở điểm này có lẽ là Java có giải pháp hay hơn khi dùng “máy ảo (các file.m). Ở điểm này có lẽ là Java có giải pháp hay hơn khi dùng “máy ảo Java”, nhưng do thông qua máy ảo Java nên tốc độ không cao, Matlab được Java”, nhưng do thông qua máy ảo Java nên tốc độ không cao, Matlab được

viết trên mỗi nền riêng để tận dụng khả năng của hệ điều hành nên cho tốc độ viết trên mỗi nền riêng để tận dụng khả năng của hệ điều hành nên cho tốc độ cao.cao.

+ Công cụ simulink đi theo Matlab giúp mô phỏng các hệ vật lý để quan sát + Công cụ simulink đi theo Matlab giúp mô phỏng các hệ vật lý để quan sát kết quả ngay trên máy, không cần chế độ phần cứng. Phải nói rằng nếu không kết quả ngay trên máy, không cần chế độ phần cứng. Phải nói rằng nếu không

có simulink, thế giới không có nhiều bài báo khoan học như hiện nay.có simulink, thế giới không có nhiều bài báo khoan học như hiện nay.

Page 7: Laptrinh Gui Matlab

LẬP TRÌNH GUI TRONG MATLABLẬP TRÌNH GUI TRONG MATLAB

1. MỞ PHẦN MỀM.2. CÁC CÔNG CỤ TRONG CỬA SỔ GUI .3. KÉO THẢ CÁC ĐIỀU KIỆN.4. THAY ĐỔI CÁC THUỘC TÍNH CỦA CÁC

ĐIỀU KIỆN.5. VIẾT LỆNH CHO CHƯƠNG TRÌNH.

Page 8: Laptrinh Gui Matlab

1.MỞ PHẦN MỀM1.MỞ PHẦN MỀM

Mở phần mềm, gõ lệnh sau vào command>>guide

Page 9: Laptrinh Gui Matlab

Trong cửa sổ GUI Quick Start có nhiều lựa chọn teo một trong Trong cửa sổ GUI Quick Start có nhiều lựa chọn teo một trong các khuân mẫu sau:các khuân mẫu sau:

Create New GUI: Tạo một hộp thoại GUI mới theo một trong các Create New GUI: Tạo một hộp thoại GUI mới theo một trong các loại sauloại sau

.Blank GUI (Default): Hộp thoại GUI trống không có điều .Blank GUI (Default): Hộp thoại GUI trống không có điều khiển unicontrol nào cả.khiển unicontrol nào cả.

.GUI With Unicontol: Hộp thoại GUI với vài unicontrol như .GUI With Unicontol: Hộp thoại GUI với vài unicontrol như button,…, chương trình có thể chạy ngay.button,…, chương trình có thể chạy ngay.

.GUI With Axes Menu: Hộp thoại với một unicontrol axse và .GUI With Axes Menu: Hộp thoại với một unicontrol axse và button, các menu để hiển thị đồ thị.button, các menu để hiển thị đồ thị.

. Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No. . Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No.Open Existing GUI: mở hộp thoại project có sẵnOpen Existing GUI: mở hộp thoại project có sẵn

Trong hướng dẫn này, tạo một project nên sẽ chọn Blank GUI. Trong hướng dẫn này, tạo một project nên sẽ chọn Blank GUI.

Page 10: Laptrinh Gui Matlab

2.CÁC CÔNG CỤ TRONG CỬA SỔ GUI.2.CÁC CÔNG CỤ TRONG CỬA SỔ GUI.

Page 11: Laptrinh Gui Matlab

Giao diện rất giống với các chương trình lập trình giao diện Giao diện rất giống với các chương trình lập trình giao diện như Visual Basic, Visual C++,… Các bạn di chuột qua các biểu như Visual Basic, Visual C++,… Các bạn di chuột qua các biểu

tượng ở bên trái sẽ thấy tên của các điều khiển. Xin nói qua tượng ở bên trái sẽ thấy tên của các điều khiển. Xin nói qua một vài điều khiển hay dùng:một vài điều khiển hay dùng:

.Push Button: giống như nút command button trong VB. .Push Button: giống như nút command button trong VB. Là các nút bấm như nút OK,Cancel mà ta vẫn bấm.Là các nút bấm như nút OK,Cancel mà ta vẫn bấm.

.Slider: Thanh trược có một con trược chạy trên đó. .Slider: Thanh trược có một con trược chạy trên đó. .Radio Button: Nút nhỏ hình tròn để lựa chọn..Radio Button: Nút nhỏ hình tròn để lựa chọn.

Page 12: Laptrinh Gui Matlab

Ngoài ra còn có các nút điều Ngoài ra còn có các nút điều khiển khác:khiển khác:

.Check Box, Edit Text, Static .Check Box, Edit Text, Static Text, Pop-up Menu, List Box, Text, Pop-up Menu, List Box, Axes, Panel, Button Group, Axes, Panel, Button Group,

AtiveX Control, Toggle Button. AtiveX Control, Toggle Button.

Page 13: Laptrinh Gui Matlab

Còn menu thì quan trọng nhất là menu Tool Còn menu thì quan trọng nhất là menu Tool có:có:

. Run(Ctr+T): để chạy chương trình mà ta . Run(Ctr+T): để chạy chương trình mà ta đã viết. Có lỗi là hiện ra.đã viết. Có lỗi là hiện ra.

. Align Object: dùng để làm cho các điều . Align Object: dùng để làm cho các điều khiển sắp xếp gọn đẹp theo ý mình như cùng khiển sắp xếp gọn đẹp theo ý mình như cùng

căn lề bên trái,…căn lề bên trái,… . Grid and Rulers: dùng để cấu hình về lưới . Grid and Rulers: dùng để cấu hình về lưới trong giao diện vì nó coi giao diện như một trong giao diện vì nó coi giao diện như một ma trận các ô vuông nhỏ, ta sẽ thay đổi giá ma trận các ô vuông nhỏ, ta sẽ thay đổi giá trị này để cho các điều khiển có thể thả ở trị này để cho các điều khiển có thể thả ở

đâu tùy ý cho đẹp.đâu tùy ý cho đẹp.

Page 14: Laptrinh Gui Matlab

.Menu Editor: trình này để tạo menu cho .Menu Editor: trình này để tạo menu cho điều khiểnđiều khiển

.Tab Order Editor: sắp xếp Tab order là thứ .Tab Order Editor: sắp xếp Tab order là thứ tự khi ta nhấn phím Tabtự khi ta nhấn phím Tab

.Gui Options:lựa chọn cho giao diện GUI.Gui Options:lựa chọn cho giao diện GUICác bạn vào menu help để xem hướng dẫnCác bạn vào menu help để xem hướng dẫnCác bạn save dưới tên: TUT01, khi đó đồng Các bạn save dưới tên: TUT01, khi đó đồng thời xuất hiện cửa sổ Editor và đang mở file thời xuất hiện cửa sổ Editor và đang mở file TUT01.m của bạn. Trong thư mục bạn save TUT01.m của bạn. Trong thư mục bạn save

sẽ có 2 file là:sẽ có 2 file là: .TUT01.fig: file này chứa giao diện của .TUT01.fig: file này chứa giao diện của

chương trìnhchương trình .TUT01.m: file chứa các mã thực thi chương .TUT01.m: file chứa các mã thực thi chương

trình như các hàm khởi tạo, các hàm trình như các hàm khởi tạo, các hàm callback,…callback,…

Page 15: Laptrinh Gui Matlab

3. Kéo thảo các điều kiện:3. Kéo thảo các điều kiện:Hãy kéo vào trong giao diện Hãy kéo vào trong giao diện 2 edit box, 1 static box và 1 2 edit box, 1 static box và 1

push bottonpush botton

Page 16: Laptrinh Gui Matlab
Page 17: Laptrinh Gui Matlab

Chương trình có chức năng khi nhấn Chương trình có chức năng khi nhấn vào nút bấm thì kết quả của phép cộng vào nút bấm thì kết quả của phép cộng giữa 2 số được gõ vào 2 ô sẽ hiện lên giữa 2 số được gõ vào 2 ô sẽ hiện lên

trong Static Texttrong Static Text

Page 18: Laptrinh Gui Matlab

4.THAY ĐỔI CÁC THUỘC 4.THAY ĐỔI CÁC THUỘC TÍNH CỦA CÁC ĐIỀU KHIỂNTÍNH CỦA CÁC ĐIỀU KHIỂN

Click đúp vào Edit Text bên trái để xuất hiện cửa sổ các thuộc tính của điều khiển. Có thể sắp xếp theo chức năng hoặc theo thứ tự A-Z của tên thuộc tính bằng nút hiện ở gõ bên trái.

Page 19: Laptrinh Gui Matlab
Page 20: Laptrinh Gui Matlab

Thuộc tính quan trọng của Thuộc tính quan trọng của Edit Box bao gồm:Edit Box bao gồm:

• Tag:đây là thuộc tính giống như Caption trong Visual Basic để đặt tên điều khiển. Dùng tên này có thể thao tác đến cá thuộc tính của đối tượng. Mình đặt tên là editstr1

• String: là xâu kí tự hiện lên Edit Box. Các bạn xóa cái này đi.

Tương tự, thay đổi thuộc tính tag của Edit Box thứ 2 thành editstrl2. Static Box cũng tương tự thành staticstr3.

Push Botton:thuộc tính tag = buttonCalculate,String =calculate.

Page 21: Laptrinh Gui Matlab

5. VIẾT LỆNH CHO CHƯƠNG 5. VIẾT LỆNH CHO CHƯƠNG TRÌNHTRÌNH

• Chương trình có tác dụng khi nhấn vào nút Push Button sẽ hiện lên kết quả ở Static Box. Vì thế nên sẽ phải viết vào hàm này mà khi nhấn vào nút Push Box sẽ gọi. Chính là hàm Callback. Điều khiên nào cũng có hàm Callback, như hàm ngắt trong vi điều khiển vậy:D

Page 22: Laptrinh Gui Matlab
Page 23: Laptrinh Gui Matlab

Nhìn vào định nghĩa của hàm trong Nhìn vào định nghĩa của hàm trong Editor bạn sẽ thấy là: hàm này được Editor bạn sẽ thấy là: hàm này được

thực hiện khi nhấn vào nút thực hiện khi nhấn vào nút buttoncalculate.buttoncalculate.

Hàm có một tham số:Hàm có một tham số:.hObject: handle của điều khiển .hObject: handle của điều khiển

bottoncalculatbottoncalculat .handles:là một cấu trúc chứa tất cả .handles:là một cấu trúc chứa tất cả các điều khiển và dữ liệu người dùng. các điều khiển và dữ liệu người dùng. Dùng cái này để truy xuất các điều Dùng cái này để truy xuất các điều

khiển khác.khiển khác..evevtdata.evevtdata

Page 24: Laptrinh Gui Matlab

Qua thuộc tính tag của các điều khiển Qua thuộc tính tag của các điều khiển ta sẽ truy xuất đến thuộc tính string ta sẽ truy xuất đến thuộc tính string của các điều khiển editstr1, editstr2, của các điều khiển editstr1, editstr2,

editstr3 bằng các lệnh get, set.editstr3 bằng các lệnh get, set.Get(handles.tag_dieu_khien,’ten thuoc Get(handles.tag_dieu_khien,’ten thuoc

tinh’);tinh’);set(handles.tag_dieu_khien,’ten_thuoc_set(handles.tag_dieu_khien,’ten_thuoc_

tinh’,’gia_tri’);tinh’,’gia_tri’);và hàm quan trong nữa biến từ string và hàm quan trong nữa biến từ string

sang số là hàm:str2num và num2str để sang số là hàm:str2num và num2str để biến trở lại.biến trở lại.

Page 25: Laptrinh Gui Matlab

Vậy chúng ta sẽ viết hàm như sau:Vậy chúng ta sẽ viết hàm như sau:

Page 26: Laptrinh Gui Matlab

Nhấn nút Run để kiểm tra kết qua:Nhấn nút Run để kiểm tra kết qua: