<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>TRƯỜNG ĐẠI HỌC ĐÀ LẠT </b>
<b>KHOA CÔNG NGHỆ THÔNG TIN </b>
<b> </b>
<b> </b>
<b> </b>
<b> </b>
<b>ThS. Thái Duy Quý </b>
<b> </b>
<b> </b>
<b>BÀI GI</b>
<b>ẢNG TÓM TẮT </b>
<b>MATLAB CĂN BẢN</b>
<b>Dành cho sinh viên kh</b>
<b>ối tự nhi</b>
<b>ên – công ngh</b>
<b>ệ</b>
<b> </b>
<b>(Lưu hành nội bộ) </b>
<b> </b>
<b> </b>
<b> </b>
<b> </b>
<b> </b>
<b> </b>
<b> </b>
<b> </b>
</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
<i>Giáo trình </i>
<i>Matlab căn bả</i>
<i>n </i>
<i>Thái Duy Quý </i>
<i>Trang 2 </i>
<b>LỜI NÓI ĐẦU </b>
Giáo trình “Matlab c
ăn bả
n”
đượ
c biên so
ạn theo chương
trình
đào tạ
o h
ệ
th
ố
ng tín ch
ỉ
c
ủa trường Đạ
i H
ọc Đà Lạ
t. M
ục đích biên soạ
n giáo trình nh
ằ
m cung c
ấ
p cho sinh viên
kh
ố
i t
ự
nhiên
, đặ
c bi
ệ
t là sinh viên ngành V
ậ
t lý h
ạ
t nhân nh
ữ
ng ki
ế
n th
ức cơ bả
n v
ề
các
phương pháp xử
lý trên ngôn ng
ữ
Matlab.
Đây là họ
c ph
ầ
n l
ần đầu tiên đượ
c tri
ể
n khai, gi
ả
ng d
ạ
y, tuy tác gi
ả
c
ũng có
nhi
ề
u c
ố
g
ắ
ng trong cơng tác biên so
ạn nhưng chắ
c ch
ắ
n giáo trình cịn có nhi
ề
u thi
ế
u sót. Tác gi
ả
xin
trân tr
ọ
ng ti
ế
p thu t
ấ
t c
ả
nh
ữ
ng ý ki
ế
n
đóng góp củ
a các b
ạn sinh viên, các đồ
ng nghi
ệ
p
trong l
ĩnh vực này để
hoàn thi
ệ
n giáo trình, ph
ụ
c v
ụ
t
ốt hơn cho việ
c d
ạ
y và h
ọ
c cho sinh
viên.
<i>Đà Lạ</i>
<i>t, T</i>
<i>háng 08 năm 2013 </i>
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
<i>Giáo trình </i>
<i>Matlab căn bả</i>
<i>n </i>
<i>Thái Duy Quý </i>
<i>Trang 3 </i>
<b>MỤC LỤC</b>
CHƯƠNG I. GIỚI THIỆU MATLAB ... 4
1. Giới thiệu... 4
2. Khởi động và chuẩn bịthư mục làm việc trong Matlab ... 4
3. Quản lý không gian làm việc của Matlab ... 5
4. Các thành phần của Mathlab ... 6
5. Các phím tắt cơ bản trong Matlab. ... 7
6. Các toán tửcơ bản của Matlab: ... 8
CHƯƠNG 2. MATLAB CƠ BẢN ... 11
1. Nhập xuất dữ liệu từ dòng lệnh ... 11
2. Nhập xuất dữ liệu từ bàn phím: ... 11
3. Nhập xuất dữ liệu từ file: ... 12
4. Các hàm toán học: ... 13
5. Các phép toán trên ma trận và vector: ... 16
6. Tạo số ngẫu nhiên: ... 18
7. Các lệnh dùng lập trình: ... 19
CHƯƠNG 3. XỬLÝ ĐỒ THỊ TRONG MATLAB ... 22
1. Khái niệm chung ... 22
2. Các lệnh vẽ ... 22
3. Tạo hình vẽ ... 22
4. Đặc tả kiểu đường vẽ ... 23
5. Đặc tảmàu và kích thước đường vẽ ... 23
6. Thêm đường vẽvào đồ thịđã có ... 25
7. Chỉ vẽcác điểm số liệu ... 25
8. Vẽcác điểm và đường ... 26
9. Vẽ với hai trục y ... 26
10. Vẽđường cong với số liệu 3D ... 27
11. Đặt các thông số cho trục ... 27
12. Ghi nhãn lên các trục toạđộ ... 28
13. Định vịvăn bản trên hình vẽ... 29
14. Đồ hoạđặc biệt ... 30
15. Đồ hoạ 3D ... 37
16. Vẽcác vectơ ... 40
CHƯƠNG 4. LẬP TRÌNH GIAO DIỆN NGƯỜI DÙNG (GUI) ... 44
1. Cách thực hiện ... 44
2. Lập trình giao diện với Blank GUI ... 45
3. Kéo thả và thiết lập thuộc tính cho các điều khiển ... 46
4. Viết lệnh cho chương trình ... 47
5. Các tính chất của các điều khiển trong GUIDE Matlab ... 49
6. Tổng quan về hàm Callback trong lập trình GUI ... 50
7. Chương trình Calculator ... 52
CHƯƠNG 5. MỘT SỐPHƯƠNG PHÁP XỬ LÝ TÍNH TỐN TRÊN MATLAB ... 55
1. Tính định thức của ma trận ... 55
2. Nghịch đảo ma trận bằng cách dùng Minor... 59
3. Nghịch đảo ma trận bằng thuật toán gauss-Jordan. ... 60
4. Lập trình giao diện: Giải phương trình bậc 2 ... 61
</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>
<i>Giáo trình </i>
<i>Matlab căn bả</i>
<i>n </i>
<i>Thái Duy Quý </i>
<i>Trang 4 </i>
<b>CHƯƠNG I. GIỚI THIỆU MATLAB </b>
<b>1.</b>
<b>Gi</b>
<b>ới</b>
<b> thi</b>
<b>ệu</b>
<b> </b>
Matlab là t
ừ
vi
ế
t t
ắ
t c
ủ
a Matrix Laboratory, Matlab là m
ộ
t ngơn ng
ữ
l
ậ
p trình c
ấ
p cao
d
ạ
ng thơng d
ị
ch, nó là mơi
trườ
ng tính tốn s
ố
đượ
c thi
ế
t k
ế
b
ở
i công ty MathWorks.
Matlab cho phép th
ự
c hi
ệ
n các phép tính tốn s
ố
, ma tr
ậ
n, v
ẽ
đồ
th
ị
hàm s
ố
hay bi
ể
u di
ễ
n
thông tin
(dướ
i d
ạ
ng 2D hay 3D), th
ự
c hi
ệ
n các thu
ậ
t toán và giao ti
ế
p v
ớ
i các
chương
trình
c
ủ
a các ngơn ng
ữ
khác m
ộ
t cách d
ễ
dàng.
<b>2.</b>
<b>Kh</b>
<b>ởi</b>
<b>động</b>
<b> và chu</b>
<b>ẩn</b>
<b> b</b>
<b>ị</b>
<b>thư</b>
<b> m</b>
<b>ục</b>
<b> làm vi</b>
<b>ệc</b>
<b> trong Matlab </b>
Trướ
c khi kh
ở
i
độ
ng Matlab, thì
ngườ
i dùng nên t
ạ
o m
ộ
t
thư
m
ụ
c làm vi
ệ
c
để
ch
ứ
a các
file
chương
trình c
ủ
a mình (Ví d
ụ
: D:\ThucHanh_DSP). Matlab s
ẽ
thông d
ị
ch các l
ệ
nh
đượ
c
lưu
trong file có d
ạ
ng *.m
Sau khi
đ
ã cài
đặ
t Matlab thì vi
ệ
c kh
ở
i ch
ạ
y
chương
trình này ch
ỉ
đơn
gi
ả
n là nh
ấ
p vào
bi
ể
u
tượ
ng c
ủ
a nó trên desktop
, ho
ặ
c vào Start\All Programs\Matlab 7.0.4\ Matlab.
</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>
<i>Giáo trình </i>
<i>Matlab căn bả</i>
<i>n </i>
<i>Thái Duy Quý </i>
<i>Trang 5 </i>
<b>3.</b>
<b>Qu</b>
<b>ản</b>
<b> lý không gian làm vi</b>
<b>ệc</b>
<b> c</b>
<b>ủa</b>
<b> Matlab </b>
Không gian làm vi
ệ
c c
ủ
a Matlab g
ồ
m có các ph
ầ
n
cơ
b
ả
n sau:
<b>*Nút Start: </b>
ở
góc
dướ
i bên trái c
ủ
a màn hình, cho phép ch
ạ
y các
ứ
ng d
ụ
ng m
ẫ
u (demos),
các công c
ụ
và c
ử
a s
ổ
chưa
hi
ể
n th
ị
khi kh
ở
i
độ
ng Matlab.
<i>Ví d</i>
<i>ụ</i>
: Start/Matlab/Demos và ch
ạ
y m
ộ
t
ứ
ng d
ụ
ng m
ẫ
u.
<b>* Cửa sổ lệnh: Quá trình kh</b>
ở
i
độ
ng
đưa
ngườ
i dùng
đế
n C
ử
a s
ổ
l
ệ
nh,
nơi
các dòng l
ệ
nh
đượ
c bi
ể
u th
ị
b
ằ
ng d
ấ
u '>>'.
Đây
là d
ấ
u hi
ệ
u cho th
ấ
y Matlab
đang
ch
ờ
đánh
m
ộ
t (câu) l
ệ
nh.
Có th
ể
xóa tr
ắ
ng toàn b
ộ
c
ử
a s
ổ
l
ệ
nh b
ằ
ng l
ệ
nh:
<i>>> clc ho</i>
ặ
c vào Edit/ Clear Command
Window. Khi th
ự
c hi
ệ
n l
ệ
nh này, toàn b
ộ
giá tr
ị
c
ủ
a các bi
ế
n hi
ệ
n có khơng thay
đổ
i hay
m
ấ
t
đi.
<b>* Cửa sổ không gian làm việc (workspace): </b>
Nơi
lưu
gi
ữ
các bi
ế
n và d
ữ
li
ệ
u do
ngườ
i
dùng nh
ậ
p vàongo
ạ
i tr
ừ
nh
ữ
ng bi
ế
n c
ụ
c b
ộ
thu
ộ
c v
ề
m
ộ
t M-file.
Dùng l
ệ
nh 'who' ho
ặ
c 'whos'
để
li
ệ
t kê các bi
ế
n hi
ệ
n có trong không gian làm vi
ệ
c.
Để
bi
ế
t giá tr
ị
c
ủ
a bi
ế
n, ta gõ tên bi
ế
n t
ạ
i d
ấ
u nh
ắ
c l
ệ
nh.
Để
xóa m
ộ
t hàm ho
ặ
c bi
ế
n kh
ỏ
i khơng
gian làm vi
ệ
c, s
ử
d
ụ
ng l
ệ
nh 'clear':
>> clear tên_bi
ế
n;
</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
<i>Giáo trình </i>
<i>Matlab căn bả</i>
<i>n </i>
<i>Thái Duy Quý </i>
<i>Trang 6 </i>
* C
ử
a s
ổ
đị
a ch
ỉ
thư
m
ụ
c hi
ệ
n th
ờ
i:
Thư
m
ụ
c hi
ệ
n th
ờ
i là
nơi
chương
trình Matlab s
ẽ
tìm
các M-file, và các file không gian làm vi
ệ
c (.mat files)
đ
ã t
ả
i và
lưu
l
ạ
i.
Để
t
ạ
o m
ộ
t file.m trong
thư
m
ụ
c làm vi
ệ
c b
ạ
n
đọ
c có th
ể
th
ự
c hi
ệ
n:
Nh
ấ
p vào bi
ể
u
tượ
ng
ho
ặ
c vào
<i><b>File\New\M-File</b></i>
:
C
ử
a s
ổ
so
ạ
n th
ả
o xu
ấ
t hi
ệ
n, gõ
chương
trình c
ầ
n thi
ế
t vào file. Sau khi
đ
ã hoàn t
ấ
t
nh
ấ
n vào bi
ể
u
tượ
ng
để
lưu
vào
thư
m
ụ
c hi
ệ
n t
ạ
i (D:\ThucHanh_Matlab).
Để
th
ự
c thi t
ậ
p l
ệ
nh có trong file.m trong
thư
m
ụ
c làm vi
ệ
c thì
ngườ
i dùng ch
ỉ
c
ầ
n gõ tên
file
đó
và Matlab s
ẽ
t
ự
độ
ng th
ự
c thi các dịng l
ệ
nh có trong file.m này (ví d
ụ
để
th
ự
c thi các
l
ệ
nh có trong file test.m, ch
ỉ
c
ầ
n gõ l
ệ
nh test).
<b>4.</b>
<b>Các thành ph</b>
<b>ần</b>
<b> c</b>
<b>ủa</b>
<b> Mathlab </b>
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>
<i>Giáo trình </i>
<i>Matlab căn bả</i>
<i>n </i>
<i>Thái Duy Quý </i>
<i>Trang 7 </i>
- Môi
<i>trườ</i>
<i>ng làm vi</i>
<i>ệ</i>
<i>c Matlab: </i>
Đây
là m
ộ
t b
ộ
các công c
ụ
và
phương
ti
ệ
n mà b
ạ
n s
ử
d
ụ
ng
v
ớ
i
tư
cách là
ngườ
i dùng ho
ặ
c
ngườ
i l
ậ
p trình Matlab. Nó bao g
ồ
m các
phương
ti
ệ
n cho
vi
ệ
c qu
ả
n lý các bi
ế
n trong không gian làm vi
ệ
c Workspace c
ũng
như
xu
ấ
t nh
ậ
p kh
ẩ
u d
ữ
li
ệ
u. Nó c
ũng
bao g
ồ
m các cơng c
ụ
phát tri
ể
n, qu
ả
n lý, g
ỡ
r
ố
i và
đị
nh hình M-file,
ứ
ng d
ụ
ng
c
ủ
a Matlab.
<i>- X</i>
<i>ử</i>
<i> lý </i>
<i>đồ</i>
<i> ho</i>
<i>ạ</i>
:
Đây
là h
ệ
th
ố
ng
đồ
ho
ạ
c
ủ
a Matlab. Nó bao g
ồ
m các l
ệ
nh cao c
ấ
p cho tr
ự
c
quan hoá d
ữ
li
ệ
u hai chi
ề
u và ba chi
ề
u, x
ử
lý
ả
nh,
ả
nh
độ
ng,... Nó c
ũng
cung c
ấ
p các l
ệ
nh
c
ấ
p th
ấ
p cho phép b
ạ
n tu
ỳ
bi
ế
n giao di
ệ
n
đồ
ho
ạ
c
ũng
như
xây d
ự
ng m
ộ
t giao di
ệ
n
đồ
ho
ạ
hồn ch
ỉ
nh cho
ứ
ng d
ụ
ng Matlab c
ủ
a mình.
-
<i>Thư</i>
<i> vi</i>
<i>ệ</i>
<i>n toán h</i>
<i>ọ</i>
<i>c Matlab: </i>
Đây
là t
ậ
p h
ợ
p kh
ổ
ng l
ồ
các thu
ậ
t tốn tính tốn t
ừ
các hàm
cơ
b
ả
n
như
c
ộ
ng, sin, cos, s
ố
h
ọ
c ph
ứ
c... t
ớ
i các hàm ph
ứ
c t
ạ
p
hơn
như
ngh
ị
ch
đả
o ma tr
ậ
n,
tìm tr
ị
riêng c
ủ
a ma tr
ậ
n, phép bi
ế
n
đổ
i Fourier nhanh.
- Giao di
<i>ệ</i>
<i>n </i>
<i>chương</i>
<i> trình </i>
<i>ứ</i>
<i>ng d</i>
<i>ụ</i>
<i>ng Matlab API (Application Program Interface): </i>
Đây
là
m
ộ
t
thư
vi
ệ
n cho phép b
ạ
n vi
ế
t các
chương
trình C và Fortran
tương
thích v
ớ
i Matlab.
<b>Simulink, m</b>
ộ
t
chương
trình
đi
kèm v
ớ
i Matlab, là m
ộ
t h
ệ
th
ố
ng
tương
tác v
ớ
i vi
ệ
c mô
ph
ỏ
ng các h
ệ
th
ố
ng
độ
ng h
ọ
c phi tuy
ế
n. Nó là m
ộ
t
chương
trình
đồ
ho
ạ
s
ử
d
ụ
ng chu
ộ
t
để
thao tác cho phép mơ hình hố m
ộ
t h
ệ
th
ố
ng b
ằ
ng cách v
ẽ
m
ộ
t
sơ
đồ
kh
ố
i trên màn hình. Nó
có th
ể
làm vi
ệ
c v
ớ
i các h
ệ
th
ố
ng tuy
ế
n tính, phi tuy
ế
n, h
ệ
th
ố
ng liên t
ụ
c theo th
ờ
i gian, h
ệ
gián
đoạ
n theo th
ờ
i gian, h
ệ
đa
bi
ế
n...
<b>5.</b>
<b>Các phím t</b>
<b>ắt</b>
<b>cơ</b>
<b> b</b>
<b>ản</b>
<b> trong Matlab. </b>
Trong q trình so
ạ
n th
ả
o l
ệ
nh, có th
ể
dùng các phím t
ắ
t
sau đây
:
<b>Ký hiệu phím </b>
<b>Phím tắt </b>
<b>Chức năng </b>
<i>↑</i>
<i>Ctrl</i>
<i>‐</i>
<i>P </i>
G
ọ
i l
ạ
i l
ệnh trước đó
<i>↓</i>
<i>Ctrl</i>
<i>‐</i>
<i>N </i>
G
ọ
i l
ệ
nh sau
<i>←</i>
<i>Ctrl</i>
<i>‐</i>
<i>B </i>
Lùi l
ạ
i m
ộ
t kí t
ự
<i>→</i>
<i>Ctrl</i>
<i>‐</i>
<i>F </i>
Ti
ế
n lên m
ộ
t kí t
ự
</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>
<i>Giáo trình </i>
<i>Matlab căn bả</i>
<i>n </i>
<i>Thái Duy Quý </i>
<i>Trang 8 </i>
Ctrl
←
Crtl
‐
L
Sang ph
ả
i m
ộ
t t
ừ
home
Ctrl
‐
A
V
ề
đầ
u dòng
end
Ctrl
‐
E
V
ề
cu
ố
i dịng
esc
Ctrl
‐
U
Xố dịng
del
Ctrl
‐
D
Xố kí t
ự
t
ạ
i ch
ỗ
con nháy đứ
ng
backspace
Ctrl
‐
H
Xố kí t
ự
trướ
c ch
ỗ
con nháy đứ
ng
<b>6.</b>
<b>Các toán t</b>
<b>ử cơ</b>
<b> b</b>
<b>ản</b>
<b> c</b>
<b>ủa</b>
<b> Matlab: </b>
Các toán t
ử
cơ bả
n:
+
C
ộ
ng
‐
Tr
ừ
*
Nhân
/
Chia ph
ả
i
\ Chia trái
^
Lu
ỹ
th
ừ
a
‘
Chuy
ể
n v
ị
ma tr
ậ
n hay s
ố
ph
ứ
c liên h
ợ
p
Các toán t
ử
quan h
ệ
:
<
nh
ỏ
hơn
<=
nh
ỏ
hơn hay bằ
ng
>
l
ớn hơn
>=
l
ớn hơn hoặ
c b
ằ
ng
==
b
ằ
ng
~=
khơng b
ằ
ng
Các tốn t
ử
logic:
& và
|
or
~
not
Các h
ằ
ng:
<i>pi </i>
3.14159265
<i>i </i>
s
ố
ả
o
<i>j </i>
tương tự
i
<i>eps </i>
sai s
ố
2
‐
52
<i>realmin </i>
s
ố
th
ự
c nh
ỏ
nh
ấ
t 2
‐
1022
<i>realmax </i>
s
ố
th
ự
c l
ớ
n nh
ấ
t 21023
<i>inf </i>
vô cùng l
ớ
n
<i>NaN </i>
Not a number
</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>
<i>Giáo trình </i>
<i>Matlab căn bả</i>
<i>n </i>
<i>Thái Duy Quý </i>
<i>Trang 9 </i>
<b>Lệnh </b>
<b>Chức năng </b>
<i>Clear </i>
Xóa t
ấ
t c
ả
các bi
ế
n trong b
ộ
nh
ớ
Matlab
<i>clc </i>
L
ệ
nh xóa c
ử
a s
ổ
l
ệ
nh (command window)
<i>pause </i>
Ch
ờ
s
ự
đáp ứ
ng t
ừ
phía ngườ
i dùng
<i>= </i>
L
ệ
nh gán
<i>% </i>
Câu l
ệ
nh sau d
ấu này đượ
c xem là dịng chú thích
<i>input </i>
L
ệ
nh l
ấ
y vào m
ộ
t giá tr
ị
.
Ví d
ụ
: x = input(‘Nhap gia tri cho x:’);
<i>help </i>
l
ệ
nh yêu c
ầ
u s
ự
giúp đở
t
ừ
Matlab
<i>Save </i>
Lưu biế
n vào b
ộ
nh
ớ
Ví d
ụ: Save test A B C (lưu các biế
n A, B, C vào file test)
<i>Load </i>
Load bi
ế
n t
ừ
file hay b
ộ
nh
ớ
. Ví d
ụ
: Load test
Các l
ệnh điề
u khi
ển cơ bả
n:
<b>Lệnh </b>
<b>Cú pháp/ Chức năng </b>
If: R
ẽ
2 nhánh
IF expression
statements
ELSEIF expression
statements
ELSE
statements
END
Switch: L
ệ
nh r
ẽ
nhi
ề
u nhánh
SWITCH switch_expr
CASE case_expr,
statement,..., statement
CASE {case_expr1, case_expr2, case_expr3,...}
statement,..., statement
...
</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>
<i>Giáo trình </i>
<i>Matlab căn bả</i>
<i>n </i>
<i>Thái Duy Quý </i>
<i>Trang 10 </i>
statement,..., statement
END
L
ệ
nh l
ặ
p For
FOR variable = expr, statement,..., statement END
L
ệ
nh l
ặ
p While
WHILE expression
statements
END
Break
Thốt độ
t ng
ộ
t kh
ỏ
i vịng l
ặ
p WHILE hay FOR.
Continue
B
ỏ
qua các l
ệ
nh hi
ệ
n t
ạ
i, ti
ế
p t
ụ
c th
ự
c hi
ệ
n vòng l
ặ
p
ở
l
ầ
n l
ặ
p ti
ế
p theo.
Return
l
ệ
nh tr
ả
v
ề
M
ộ
t s
ố
l
ệnh cơ bản trên đồ
th
ị
:
<b>Lệnh </b>
<b>Chức năng </b>
<i>clf </i>
xóa hình hi
ệ
n t
ạ
i
<i>plot(signal) </i>
v
ẽ
d
ạ
ng sóng tín hi
ệ
u signal
<i>stairs(signal) </i>
v
ẽ
tín hi
ệ
u signal theo d
ạ
ng c
ầ
u thang.
<i>stem(signal) </i>
v
ẽ
chu
ỗ
i d
ữ
li
ệ
u r
ờ
i r
ạ
c
<i>bar(signal) </i>
v
ẽ
d
ữ
li
ệ
u theo d
ạ
ng c
ộ
t
<i>mesh(A) </i>
hi
ể
n th
ị
đồ
h
ọ
a d
ạ
ng 3D các giá tr
ị
ma tr
ậ
n
<i>Chi ti</i>
<i>ế</i>
<i>t các l</i>
<i>ệ</i>
<i>nh s</i>
<i>ẽ</i>
<i>đượ</i>
<i>c làm rõ trong </i>
<i>các chương tiế</i>
<i>p theo. </i>
<b>7.</b>
<b>K</b>
<b>ết chương</b>
</div>
<!--links-->