Tải bản đầy đủ (.ppt) (26 trang)

Tài liệu GIỚI THIỆU VGIỚI THIỆU VỀ LẬP TRÌNH MATLAB docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (306.34 KB, 26 trang )


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


.SƠ LƯỢC VỀ LẬP TRÌNH
.SƠ LƯỢC VỀ LẬP TRÌNH
MATLAB
MATLAB
.LẬP TRÌNH GIAO DIỆN
.LẬP TRÌNH GIAO DIỆN
GUI TRONG MATLAB
GUI TRONG MATLAB


SƠ LƯỢC LẬP TRÌNH MATLAB
SƠ LƯỢC LẬP TRÌNH 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.


-


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.


+
+
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.


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

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.


1.MỞ PHẦN MỀM
1.MỞ PHẦN MỀM
Mở phần mềm, gõ lệnh sau vào
command>>guide




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
Create New GUI: Tạo một hộp thoại GUI mới theo một trong
các loại sau
các loạ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
.GUI With Axes Menu: Hộp thoại với một unicontrol axse
và button, các menu để hiển thị đồ thị.
và 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ẵn
Open 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.


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


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
.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.

VB. 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.


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.


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ư
khiển sắp xếp gọn đẹp theo ý mình như
cùng căn lề bên trái,…
cùng 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.


.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 Tab
tự 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 GUI
Các bạn vào menu help để xem hướng dẫn
Các bạn vào menu help để xem hướng dẫn
Cá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ình
chương trình
.TUT01.m: file chứa các mã thực thi
.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
chương trình như các hàm khởi tạo, các hàm
callback,…
callback,…


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 botton
push botton





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
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
cộng giữa 2 số được gõ vào 2 ô sẽ hiện
lên trong Static Text
lên trong Static Text


4.THAY ĐỔI CÁC THUỘC
4.THAY ĐỔI CÁC THUỘC
TÍNH CỦA CÁC ĐIỀU KHIỂN
TÍ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.




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.


5. VIẾT LỆNH CHO CHƯƠNG
5. VIẾT LỆNH CHO CHƯƠNG
TRÌNH
TRÌ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





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
bottoncalculat
bottoncalculat
.handles:là một cấu trúc chứa tất
.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
cả 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
dùng. Dùng cái này để truy xuất các
điều khiển khác.
điều khiển khác.
.evevtdata
.evevtdata


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.


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

×