You are on page 1of 47

11/4/2013

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÁC HỆ THỐNG THÔNG TIN

MATrix LABoratory

Hoang Huu Viet, Ph.D.,


E-mail: viethh.vinhuni@gmail.com

Sep., 2013

Matlab

Mục đích
 Giới thiệu cơ bản về phần mềm MATLAB cho
sinh
i h viên.

 Ứng dụng MATLAB để giải quyết được một số
bài toán cơ bản liên quan với ngành học của
sinh viên.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 2

1
11/4/2013

Matlab

Nội dung
 Chương 1. Nhập môn
 Chương 2. Ma trận và mảng
 Chương 3. Đồ họa trong Matlab
 Chương 4. Lập trình trong Matlab

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 3

Matlab

Tài liệu tham khảo


 [1] Nguyễn Hoàng Hải, Nguyễn Khắc Kiểm,
N
Nguyễn
ễ Trung
T Dũ
Dũng, Hà Trần
T ầ Đức,
Đứ LậpLậ trình
tì h
Matlab, MXB Khoa học và Kỹ thuật, 2003.
 [1] Nguyễn Hữu Tình, Lê Tấn Hùng, Phạm Thị
Ngọc Yến, Nguyễn Thị Lan Hương, Cơ sở
Matlab & ứng dụng, NXB Khoa học và Kỹ thuật,
2009
2009.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 4

2
11/4/2013

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÁC HỆ THỐNG THÔNG TIN

MATrix LABoratory

Hoang Huu Viet, Ph.D.,


E-mail: viethh.vinhuni@gmail.com

Sep., 2013

Chương 1. Nhập môn

Nội dung
 Giới thiệu về MATLAB
 Khởi động và kết
ế thúc
 Môi trường làm việc
 M-File

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 2

1
11/4/2013

Chương 1. Nhập môn

Giới thiệu về MATLAB


 MATLAB (MATrix LABoratory) được Cleve Moler
phát
hát minh
i h vào
à cuối
ối thập
thậ niên
iê 1970.
1970
 Cleve Moler là GS toán và khoa học
máy tính gần 20 năm ở các trường
Đại học Michigan, Stanford, và New
Mexico (http://www.mathworks.com/moler/).
 Cleve Moler cũng là đồng tác giả của các quyển sách
 Numerical Computing with MATLAB
 Experiments with MATLAB
 Cleve Moler hiện là chủ tịch công ty MatWorks.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 3

Chương 1. Nhập môn

Giới thiệu về MATLAB


 MATLAB được phát triển bởi công ty
M thW k
MathWorks.
 Matlab là một ngôn ngữ bậc cao cho tính toán
số và phát triển các ứng dụng.
 Dùng Matlab có thể giải quyết các bài toán
nhanh hơn các ngôn ngữ lập trình: C, C++,...
 Matlab có thểể ứng dụng trong đại sốố tuyến
ế tính,
xác suất, xử lý ảnh, xử lý tín hiệu số, ... thông
qua các thư viện (toolboxs).

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 4

2
11/4/2013

Chương 1. Nhập môn

Giới thiệu về MATLAB


 Các đặc trưng chính của Matlab
 Là ngôn ngữ máy tính bậc cao cho tính toán kỹ thuật
 Là công cụ để thiết kế và giải quyết các bài toán
nhanh chóng.
 Cung cấp các hàm để làm việc trong các lĩnh vực: đại
số tuyến tính, thống kê, lý thuyết tối ưu, ...
 Cung g cấp
p các hàm đồ họaọ 2-D,, 3-D cho hiển thịị dữ
liệu.
 Cung cấp công cụ cho phát triển giao diện đồ họa.
 Cung cấp các lệnh làm việc với C, C++, Java, Fortran

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 5

Chương 1. Nhập môn

Khởi động và kết thúc


 Khởi động Matlab
 Nháy đúp vào biểu
ể tượng ở màn hình máy tính.
Xuất hiện:

 Kết thúc Matlab


 Gõ exit và ấn enter tại dấu nhắc lệnh >>.
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 6

3
11/4/2013

Chương 1. Nhập môn

Môi trường làm việc


 Nút
 Nằm
ằ ở góc dưới bên trái của màn hình Matlab.
 Dùng để chạy Demo và các công cụ của Matlab.
 Cửa sổ lệnh
 Dùng để gõ các lệnh của Matlab.
 Dùng để hiển thị kết quả của lệnh.
Trong chế độ làm việc tại cửa sổ lệnh,
Matlab có thể được xem như 1 máy tính cá
nhân (calculator).

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 7

Chương 1. Nhập môn

Môi trường làm việc


 Cửa sổ lệnh (tiếp)
 Các phím dùng trong cửa sổ
ổ lệnh
Phím Tác dụng
 Lấy lại lệnh đã thực hiện phía trước
 Lấy lại lệnh đã thực hiện phía sau
 Đưa con trỏ sang phải một ký tự
 Đưa con trỏ sang trái một ký tự
Home Đưa con trỏ về đầu dòng
End Đưa con trỏ về cuối dòng
Esc Xóa lệnh tại dấu nhắc >>
Delete Xóa ký tự tại ví trí con trỏ
Backspace Xóa ký tự trước vị trí con trỏ

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 8

4
11/4/2013

Chương 1. Nhập môn

Môi trường làm việc


 Cửa sổ lệnh (tiếp)
 Các lệnh có thể
ể viết
ế trên 1 dòng, mỗiỗ lệnh có thể

cách nhau dấu phẩy “,” hoặc chấm phẩy “;”.
 Nếu các lệnh cách nhau dấu “,” thì kết quả của lệnh hiển thị
trên màn hình.
 Nếu các lệnh cách nhau dấu “;” thì kết quả của lệnh không
hiển thị trên màn hình.
 Dấu (...)
( ) để chỉ câu lệnh được tiếp tục ở dòng dưới.
dưới
 Ví dụ:
>> x = 1, y = 2, z = 3 (enter)
>> x + y; y + z; z + x;

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 9

Chương 1. Nhập môn

Môi trường làm việc


 Cửa sổ Workspace
 Hiển
ể thi các biến
ế trong bộ nhớ
 Name: tên biến
 Value: giá trị của biến
 Min: giá trị bé nhất
 Max: giá trin lớn nhất
 Các biến trong cửa sổ
bị mất khi dùng lệnh xóa
 clear all.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 10

5
11/4/2013

Chương 1. Nhập môn

Môi trường làm việc


 Cửa sổ Command History
 Dùng để
ể lưu các lệnh đã thực hiện tại cửa sổ
ổ lệnh.
 Để thực hiện lại lệnh, nháy đúp lên lệnh.
 Xóa các lệnh trong cửa sổ:
 Nháy chuột phải
 Chọn Clear Command History

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 11

Chương 1. Nhập môn

Môi trường làm việc


 Cửa sổ Current Folder
 Hiển
ể thị các thư mục con và tệp của thư mục hiện
thời.
 Thư mục hiện thời được chọn

 Chú ý:
 Thiết lập đường dẫn cho Matlab
 Chọn File  Set Path
 Chọn Add Folder
 Chọn Save

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 12

6
11/4/2013

Chương 1. Nhập môn

M-file
 Matlab là một ngôn ngữ lập trình mà các lệnh
đ
được viết
iết vào
à mộtột tệp
tệ chương
h t ì h và
trình à sau đó
thực hiện.
 Tệp chương trình là một là một tệp văn bản
chứa các lệnh của Matlab và có phần mở rộng
“.m”, do đó tệp gọi là M-file.
 M fil có
M-file ó thể là một
ột tệp
tệ script
i t hoặc
h ặ function
f ti
 Script: chứa các lệnh matlab như khi làm việc tại dấu
nhắc cửa sổ lệnh.
 Function: dùng để xây dựng hàm trong Matlab.
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 13

Chương 1. Nhập môn

M-file
 Biên soạn M-file
 Chọn biểu
ể tượng trên thanh công cụ, hoặc chọn
File  New  Blank M-file.
 Chú ý: Lời chú thích đặt sau dấu %.
 Ghi M-file
 Chọn biểu tượng trên thanh công cụ, hoặc chọn
File  save.
save
 Thực hiện M-file
 Chọn biểu tượng trên thanh công cụ, hoặc gõ tên
M-file tại cửa sổ lệnh.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 14

7
11/4/2013

Chương 1. Nhập môn

Kết thúc chương

Hỏi & Đáp

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 15

8
11/4/2013

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÁC HỆ THỐNG THÔNG TIN

MATrix LABoratory

Hoang Huu Viet, Ph.D.,


E-mail: viethh.vinhuni@gmail.com

Sep., 2013

Chương 2. Ma trận và mảng

Nội dung
 Ma trận
 Hằng,
ằ biến,
ế hàm, biểu ể thức
 Các phép toán trên ma trận
 Các phép toán trên mảng
 Xâu ký tự
 Định dạng hiển thị dữ liệu
 Một số lệnh cơ bản

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 2

1
11/4/2013

Chương 2. Ma trận và mảng

Ma trận
 Biễu diễn ma trận
 Trong Matlab, ma trận (matrix) là một bảng dữ liệu
gồm các hàng và các cột.
 Ví dụ:

 Một ma trận kích thước mxn nghĩa là ma trận có m


hàng, n cột.
 Phần tử ở dòng i và cột j của ma trận A được ký hiệu
là A(i,j) (1≤ i ≤ n, 1≤ j ≤ m).

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 3

Chương 2. Ma trận và mảng

Ma trận
 Biễu diễn ma trận (tiếp)
 Một ma trận kích thức 1x1 là một số
ố vô hướng.
 Một ma trận kích thước 1xn là một véc tơ hàng.
 Một ma trận kích thước mx1 là một vec tơ cột.
 Ví dụ: a là 1 vector hàng kích thước 1x6, b là 1 vector cột
kích thước 5x1.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 4

2
11/4/2013

Chương 2. Ma trận và mảng

Ma trận
 Nhập ma trận
 Liệt kê các phần
ầ tử của các véc tơ hàng của ma trận,
mỗi hàng cách nhau dấu “;” và tất cả các hàng đặt
trong dấu [ ].
 Ví dụ:
 A = [1 2 3; 4 5 6; 7 8 9];  ma trận A kích thước 3x3.
 B = [2 7 3 8 4 6 7 8 2];  vector hàng
 C = [1; 3; 5; 7; 2; 1];  vector cột
 Chú ý:
 Nếu có dấu “;” sau lệnh thì kết quả không xuất hiện, ngược
lại thì kết quả xuất hiện trên màn hình.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 5

Chương 2. Ma trận và mảng

Ma trận
 Truy nhập phần tử của ma trận
 Các phần
ầ tử của mảng được truy qua chỉ số
ố dòng và
cột.
 Cú pháp: tên_ma_trận(chỉ_số_dòng,chỉ_số_cột)
 Ví dụ:
 A = [1 2 3; 4 5 6; 7 8 9];
 s1 = A(1,2) + A(1,2) + A(1,3); s2 = A(1,1) + A(2,2) + A(3,3);
 Chú ý:
 Nếu ma trận là 1 vector hàng hoặc cột thì chỉ cần dùng chỉ
số hàng hoặc chỉ số cột để truy nhập.
 Ví dụ: a = [2 4 6 9 2 4]  s = a(3) + a(5);

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 6

3
11/4/2013

Chương 2. Ma trận và mảng

Ma trận
 Toán tử “:”
 Cú pháp: a:b:c
 Ý nghĩa: Tạo ra một vector hàng bắt đầu từ giá trị a,
mỗi số cách nhau 1 giá trị b, và kết thúc ở gía trị c.
 Ví dụ:
 x = 1:2:10  vector x = [1 3 5 7 9]
 y = 10:-1:5  vector y = [10, 9, 8, 7, 6, 5]
 Nếu không chỉ ra giá trị b, thì b lấy giá trị bằng 1.
 Ví dụ:
 z = 1:8  vector z = 1 2 3 4 5 6 7 8
 v = 1:-1  vector v = [] (vector rỗng)

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 7

Chương 2. Ma trận và mảng

Ma trận
 Toán tử “:” (tiếp)
 Toán tử “:” được dùng để
ể trích một số
ố phần
ầ tử của
vector.
 Ví dụ:
 a = 0:2:12;  a = [0 2 4 6 8 10 12]; b = a(3:6)  b = [4 6 8 10].
 Toán tử “:” được dùng để trích ra 1 tập hợp các hàng
hoặc các cột của một ma trận.
 Ví dụ:
 A(:,j)  trích các phần tử ở cột j.
 A(i,:) trích các phần tử ở hàng i.
 A(2:5,j)  trích các phần tử ở hàng 2  5 của cột j.
 A(2:5,4:6)  trích các phần tử ở hàng 2 4 và cột 46.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 8

4
11/4/2013

Chương 2. Ma trận và mảng

Hằng, biến, hàm, biểu thức


 Hằng (constant)
 Hằng
ằ là đại lượng có giá trị không thay đổi
ổ khi thực
hiện chương trình.
 Matlab cung cấp các hằng số thực và số phức
 Số thực: dùng dấu “.” để biểu diễn phân số.
 Số phức: dùng ký kiệu “i” hoặc “j” để biểu diễn phần ảo.
 Một số hằng đặc biệt
 pi: Trả về giá trị số pi.
 i (và ) j: ký hiệu số phức. i2 = j2 = -1.
 Inf: Để chỉ số vô cùng lớn. Ví dụ 1/0 = inf
 NaN: Dùng để chỉ số không xác định. Ví dụ: 0/0 = NaN.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 9

Chương 2. Ma trận và mảng

Hằng, biến, hàm, biểu thức


 Biến (variable)
 Biến
ế là một vùng bộ nhớ được đặt tên và dùng để

chứa một hoặc một dãy các giá trị.
 Các quy định đặt tên biến trong MATLAB
 Tên biến bắt đầu phải là một chữ cái, tiếp theo có thể là các
chữ cái, chữ số, hoặc dấu gạch dưới.
 Các ví dụ đúng: x1, x_1, x_2, giatri,
 Các ví dụ sai: 1x,
1x x+,
x+ x-,
x
 Tên biến phân biệt chữ hoa và chữ thường.
 Tên biến không được đặt trùng tên với các từ khóa
(keywords) của MATLAB. Ví dụ: if, end, for,..

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 10

5
11/4/2013

Chương 2. Ma trận và mảng

Hằng, biến, hàm, biểu thức


 Biến (variable) (tiếp)
 Ví dụ:
 x = 5;  tạo ra một ma trận x kích thước 1x1 để lưu giá trị 5.
 y = [2 4 5];  tạo ra một ma trận y kích thước 1x3.
 A = [1 3 4 5; 4 5 2 1];  tạo ra một ma trận A kích thước 2x4.
 Trong Matlab, các biến không cần khai báo kiểu dữ
liệu và kích thước của biến.
 Biến có tên “ans” là biến dùng để trả về kết quả của
lệnh.
 Ví dụ:
>> 5  ans = 5
>> [2 4 5]  ans = [2 4 5]
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 11

Chương 2. Ma trận và mảng

Hằng, biến, hàm, biểu thức


 Hàm (function)
 Matlab cung cấpấ nhiềuề hàm toán học cho người
dùng. Gõ “help elfun” để xem các hàm.
 Một số hàm toán học cơ bản
Hàm Ý nghĩa Hàm Ý nghĩa
exp(x) ex asin(x) sin-1(x)
sqrt(x) x cos(x) cos(x)
log(x) log(x) acos(x) cos-1(s)
log10(x) log10(x) tan(x) tang(x)
abs(x) |x| atan(x) tang-1(x)
sin(x) sin(x) sign(x) dấu của x

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 12

6
11/4/2013

Chương 2. Ma trận và mảng

Hằng, biến, hàm, biểu thức


 Biểu thức (Expression)
 Biểu
ể thức là kết
ế quả ghép nốiố các toán tử và các toán
hạng để diễn đạt một công thức.
 Toán tử: là các phép toán
 Toán hạng: là hằng, biến, hàm.
 Ví dụ: y = 2 + x + exp(x) + ln(x).
 Biểu thức thực là biểu thức trả về giá trị số thực.
 Biểu thức logic là biểu thức có giá trị nguyên:
 Giá trị khác 0: Mệnh đề đúng
 Giá trị bằng 0: Mệnh đề sai

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 13

Chương 2. Ma trận và mảng

Hằng, biến, hàm, biểu thức


 Phép toán gán giá trị
 Dạng lệnh: <biến>
ế = <biểu
ể thức>;
 Ý nghĩa: Dùng để gán giá trị của <biểu thức> cho
<biến>
 Chú ý:
 Nếu không có dấu “;” phía sau <biểu thức> thì kết quả của
biến sẽ hiển thị lên cửa sổ lệnh.
 Phép toán “=“ dùng để gán giá trị, phép toán “==“ dùng để so
sánh giá trị của 2 biểu thức (kết quả trả về là 1 hoặc 0).

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 14

7
11/4/2013

Chương 2. Ma trận và mảng

Các phép toán trên ma trận


 Matlab cung cấp các phép toán trên ma trận:
 Cộng: + Trừ: -
 Nhân: * Mũ: ^
 Chuyển vị: ‘
 Chia phải: / (ví dụ: XA = B  X = B/A)
 Chia trái: \ (ví dụ: AX = B  X = B\A)
 Chú ý:
ý
 Nếu kích thước của ma trận không phù hợp với phép
toán, một lỗi sẽ xẩy ra.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 15

Chương 2. Ma trận và mảng

Các phép toán trên ma trận


 Các hàm làm việc với ma trận
 [M,N] = size(X): trả vềề số
ố dòng và cột của ma trận X.
 [N] = length(X): trả về kích thước lớn nhất của X.
 [D] = det(X): trả về định thức của ma trân vuông X.
 Y = inv(X): trả về ma trân nghịch đảo Y của ma trận
vuông X.
 [I] = find(X): trả về các vị trí tương ứng với các phần
từ khác 0 (giá trị đúng) của ma trận X.
 Ví dụ:
 X = [6 10 10 2 10 10 5 9] ;
 find(X = 10)  I = [2 3 5 6]

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 16

8
11/4/2013

Chương 2. Ma trận và mảng

Các phép toán trên ma trận


 Các hàm làm việc với ma trận (tiếp)
 [Y,I] = max(X): trả về
ề giá trị và vị trí của phần
ầ tử lớn
nhất của các cột của ma trận X. Giá trị lớn nhất lưu
trong vector Y và vị trí lưu trong vector I.
 Ví dụ:
 X = [5 3 8; 4 9 1; 2 4 6; 1 7 3];
 [Y,I] = max(X)  Y = [5 9 8], I = [1 2 1].
 [Y,I]
[Y I] = min(X): trả về giá trị và vị trí của phần tử bé
nhất của các cột của ma trận X. Giá trị bé nhất lưu
trong vector Y và vị trí lưu trong vector I.
 Ví dụ:
 [Y,I] = min(X)  Y = [1 3 1], I = [4 1 2].

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 17

Chương 2. Ma trận và mảng

Các phép toán trên ma trận


 Các hàm làm việc với ma trận (tiếp)
 [S] = sum(X): trả về
ề 1 vector S là tổng
ổ các cột của ma
trận X.
 Ví dụ:
 X = [5 3 8; 4 9 1; 2 4 6; 1 7 3]
 [S] = sum(X)  S = [12 23 18]  sum(S) = 53
 [Y,I] = sort(X): trả về ma trận Y các cột được sắp tăng
dần của ma trận X. X Chỉ số sắp xếp lưu ở ma trận I.
I
 Ví dụ:
 X = [5 3 8; 4 9 1; 2 4 6; 1 7 3];
 Y = sort(X)  Y = [1 3 1; 2 4 3; 4 7 6; 5 9 8];
 Chú ý: nếu X là 1 vector hàng, nó cũng được sắp tăng dần.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 18

9
11/4/2013

Chương 2. Ma trận và mảng

Các phép toán trên ma trận


 Các hàm tạo ma trận
 X = zeros(M,N): tạo ma trận X kích thước MxN số ố 0.
 X = ones(M,N): tạo ma trận X kích thước MxN số 1.
 X = eye(N): tạo ma trận đơn vị X kích thước NxN.
 Y = diag(X): tạo vector đường chéo của ma trận X.
 Y = triu(X): tạo ma trận tam giá trên của ma trận X.
 Y = tril(X): tạo ma trận tam giác dưới của ma trận X.
X
 X = rand(M,N): tạo ma trận X kích thước MxN với các
phần tử ngẫu nhiên từ -1 đến 1.
 X= randi(IMAX,M,N): tạo ma trận X kích thước MxN
với phần tử ngẫu nhiên từ 0  IMAX.
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 19

Chương 2. Ma trận và mảng

Các phép toán trên mảng


 Mảng là một tập hợp các phần tử có cùng kiểu
dữ liệu
liệ màà mỗi
ỗi phần
hầ tử được
đ đá h chỉ
đánh hỉ số
ố theo
th
số chiều của mảng.
 Mảng 1 chiều là 1 vector, mỗi phần tử có 1 chỉ số.
 Mảng 2 chiều là 1 ma trận, mỗi phần tử có 2 chỉ số.
 Mảng 3 chiều là tập hợp các ma trận, mỗi phần tử có
3 chỉ số.
số Ví dụ: A = randi(10,2,3,4);
randi(10 2 3 4);

 A(1,1,1) = 1; A(1,1,2) = 5; A(1,1,3) = 7; A(1,1,4) = 4;

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 20

10
11/4/2013

Chương 2. Ma trận và mảng

Các phép toán trên mảng


 Các phép toán trên mảng được thực hiện trên
từ phần
từng hầ tử của
ủ mảng.

 Các phép toán trên mảng giống với trên ma trận:
 Công, trừ phần tử: +, -.
 Các phép toán trên mảng khác với trên ma trận:
 Nhân: .*
 Chia: ./
 Chia trái: .\
 Mũ: .^
 Ví dụ:
 A = [1 2; 3 4];  A.*A = [1 4; 9 16];
 B = [2 4; 5 7];  A.*B = [2 8; 15 28];
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 21

Chương 2. Ma trận và mảng

Các phép toán trên mảng


 Các phép toán quan hệ
 So sánh lớn hơn: >; lớn hơn hoặc bằng:
ằ >=
 So sánh bé hơn: <; bé hơn hoặc bằng: <=
 So sánh bằng: ==; so sánh khác nhau: ~=
 Chú ý:
 Các phép toán quan hệ so sánh các phần tử của 2
ma trận và kết quả là 1 ma trận với các phần tử 0/1.
0/1
 Ví dụ:
 A = [1 1 5; 2 5 1; 5 3 3]; B = [1 4 1; 5 5 2; 1 5 2]
 C = A > B;  C = [0 0 1; 0 0 0; 1 0 1];
 D = (A == B);  D = [1 0 0; 0 1 0; 0 0 0];
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 22

11
11/4/2013

Chương 2. Ma trận và mảng

Các phép toán trên mảng


 Các phép toán logic
 Phép toán VÀ:
À &
 Phép toán HOẶC: |
 Phép phủ định: ~
 Chú ý:
 Các phép toán logic so sánh các phần tử của 2 ma
trận và kết quả là 1 ma trận với các phần tử 0/1.
0/1
 Ví dụ:
 A = [1 1 0; 2 5 1; 5 0 3]; ~A = [0 0 1; 0 0 0; 0 1 0];

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 23

Chương 2. Ma trận và mảng

Xâu ký tự
 Xâu ký tự là một dãy các ký tự được đặt trong
cặp
ặ dấu
dấ ‘ ‘.

 Ví dụ: s = ‘I love Matlab so much’;
 Xâu ký tự là 1 vector hàng  dùng chỉ số hàng
để truy nhập từng phần tử của xâu ký tự.
 Các hàm làm việc với xâu:
 Hàm [T] = num2str(A): chuyển ma trận A thành xâu
ký tự T.
 Chuyển số thành xâu ký tự?

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 24

12
11/4/2013

Chương 2. Ma trận và mảng

Định dạng hiển thị dữ liệu


 Định dạng hiển thị số được điều khiển bởi các
lê h sau:
lênh
Định dạng Ý nghĩa
format short Hiển thị 5 chữ số thập phân
format long Hiển thị 15 chữ số thập phân
format short e Hiển thị dạng số e cùng 5 chữ số thập phân
format long e Hiển thị dạng số e cùng 15 chữ số thập phân
format hex Hiển thị dạng số Hexa
format '+' Hiển thị dạng có dấu (+,-)
format bank Hiển thị thêm dấu $
format rat Hiển thị dang phân số

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 25

Chương 2. Ma trận và mảng

Một số lệnh cơ bản


 who: hiển thị các biến
 clc: xóa màn hình
 clear all: xóa tất cả các biến
 save: các biến
 save <tên_tệp>: ghi tất cả các biến vào tệp với phần
mở rộng .mat.
 save <tên_tệp> x: ghi biến x vào tệp.
 load: đọc các biến từ tệp
 load <tên_têp>: đọc tất cả các biến từ tệp.
 load <tên_têp> x: đọc chỉ biến x từ tệp.
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 26

13
11/4/2013

Chương 2. Ma trận và mảng

Kết thúc chương

Hỏi & Đáp

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 27

14
11/4/2013

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÁC HỆ THỐNG THÔNG TIN

MATrix LABoratory

Hoang Huu Viet, Ph.D.,


E-mail: viethh.vinhuni@gmail.com

Sep., 2013

Chương 3. Đồ họa trong Matlab

Nội dung
 Các lệnh làm việc với cửa sổ đồ thị
 Đồ
ồ họa trong mặt phẳng

 Hàm plot
 Thiết lập kiểu đường, màu sắc, nét vẽ
 Thiết lập các tham số cho đồ thị
 Một số hàm vẽ thông dụng
 Chỉ h sửa
Chỉnh ử trực tiếp
iế đồ thị
hị
 Vẽ nhiều đồ thị trong cùng hệ trục tọa độ
 Vẽ nhiều đồ thị trong cùng cửa sổ
 Đồ họa trong không gian
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 2

1
11/4/2013

Chương 3. Đồ họa trong Matlab

Các lệnh làm việc với cửa sổ


 Tạo cửa sổ để vẽ đồ thị
 Cú pháp: figure;
 Menu: các lệnh làm việc.
 ToolBar: các lệnh thường dùng
 Ghi cửa sổ đồ thị
 Chọn biểu tượng Save
 Xóa cửa sổ đồ thị
 Cú pháp: clf;
 Đóng tất cả các cửa sổ
 Cú pháp: close all;
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 3

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Hàm plot(x,y)
 Ý nghĩa: Vẽ đồ ồ thị hàm số ố y = f(x) trong mặt phẳng

với x là vector đối số và y là vector kết quả của hàm f.
 Ví dụ:
 figure; x = -pi : 0.1 : pi; y = sin(x); plot(x,y);

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 4

2
11/4/2013

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Hàm plot(x,y,s)
 Ý nghĩa: Vẽ đồ ồ thị hàm số
ố y = f(x) trong mặt phẳng

với kiểu đường, màu sắc và nét vẽ được tạo dùng
xâu ký tự s.
 Thiết lập kiểu đường, màu sắc, nét vẽ cho xâu s

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 5

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Hàm plot(x,y,s) (tiếp)
 Ví dụ:
 figure; x = -pi : 0.1 : pi; y = sin(x); plot(x,y,’-b*);

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 6

3
11/4/2013

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Thiết lập các tham số cho đồ thị
 Hàm grid on/off: tạo/hủy lưới trên đồ ồ thị
 Hàm xlabel(‘tiêu đề trục x’): tạo tiêu đề trục x.
 Hàm ylabel(‘tiêu đề trục y’): tạo tiêu đề trục y.
 Hàm title(‘tiêu đề đồ thị’): tạo tiêu đề cho đồ thị:

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 7

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Thiết lập các tham số cho đồ thị (tiếp)
 Thiết
ế lập phạm vi trục tung, trục hoành:
 Thiết lập cả 2 trục: axis([xmin,xmax,ymin,ymax]);
 Thiết lập chỉ trục tung: xlim(gca,[xmin, xmax]);
 Thiết lập chỉ trục hoành: ylim(gca,[ymin, ymax]);
 xmin, xmax là giới hạn trái và giới hạn phải của trục hoành.
 ymin, ymax là giới hạn dưới và dưới hạn trên của trục tung.
 Thiết lập nhãn cho trục tung,
tung trục hoành
 Trục tung: set(gca,’XTickLabel’,<các giá trị>);
 Trục hoành: set(gca,’YTickLabel’,<các giá trị>);

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 8

4
11/4/2013

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Thiết lập các tham số cho đồ thị (tiếp)
 Ví dụ:

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 9

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Một số hàm vẽ thông dụng
 Hàm line(x,y): vẽ đường thẳng
ẳ với tọa độ là các phần

tử trong vector x và y.
 Ví dụ: line([1, 4, 3], [5, 1, 7]);
 Hàm rectangle(‘position’, [x, y, w, h]): vẽ hình chữ
nhật ở tọa độ (x,y) với chiều rộng w và chiều cao h.
 Hàm fill(x,y,c): vẽ đa giác với các đỉnh là các phần tử
của vector x, y và được tô màu c.
 Hàm text(x,y,’xâu ký tự’): hiển thị xâu ký tự ở vị trí
(x,y).

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 10

5
11/4/2013

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Một số hàm thông dụng
 Ví dụ: Vẽ 1 lục giác

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 11

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Chỉnh sửa đồ thị
 Chọn biểu
ể tượng trên thanh công cụ hoặc chọn
menu Tools  Edit Plot.
 Bấm con trỏ chuột trên đồ thị  nháy chuột pải:
 Color: Màu đường vẽ.
 LineStyle: kiểu đường vẽ.
 LineWidth: độ lớn đường vẽ.
 Marker: các ký hiệu trên đường vẽ.
 MarkerSize: độ lớn ký hiệu vẽ.
 Chọn menu Insert để chèn
các đối tượng khác vào đồ thị.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 12

6
11/4/2013

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Vẽ nhiều đồ thị trong 1 hệ trục tọa độ
 Dùng lệnh “hold on” và vẽ các đồ
ồ thị.
 Thêm các chú thích trên các đồ thị
 Cú pháp: legend(h,’chú thích 1’, ‘chú thích 2’,..,’chú thích n’);
 h là 1 vector có n gía trị được lấy từ các lệnh plot:
 h(1) = plot(x,y1);  vẽ hàm y1 = f1(x);
 h(2) = plot(x,y2);  vẽ hàm y2 = f2(x);
 ...
 h(n) = plot(x,yn);  vẽ hàm yn = fn(x);

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 13

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Vẽ nhiều đồ thị trong 1 hệ trục tọa độ
 Ví dụ:

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 14

7
11/4/2013

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Vẽ nhiều đồ thị trong cùng một cửa sổ
 Hàm subplot(m,n,p) hoặc subplot mnp: chia cửa sổ ổ
thành bảng có m hàng, n cột hệ trục tọa độ và hệ trục
tọa độ thứ p được chọn để vẽ.
 Ví dụ 1: subplot(2,3,4)  tạo ra 6 hệ trục tọa độ và chọn hệ
trục tọa độ thứ 4 để vẽ.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 15

Chương 3. Đồ họa trong Matlab

Đồ họa trong mặt phẳng


 Vẽ nhiều đồ thị trong cùng một cửa sổ (tiếp)
 Ví dụ 2: Vẽ 4 đồ
ồ thị trên 4 hệ trục tọa độ

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 16

8
11/4/2013

Chương 3. Đồ họa trong Matlab

Đồ họa trong không gian


 Hàm plot3(x,y,z)
 Dùng để ể vẽ các điểm ể có tọa độ là các phần ầ tử của
vector x, y, z với x, y, z có cùng chiều dài (số phần tử)

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 17

Chương 3. Đồ họa trong Matlab

Đồ họa trong không gian


 Vẽ đồ thị hàm hàm 2 biến z = f(x,y)
 Sinh ra ma trận X và Y lặp lại các dòng và cột.
 Ví dụ: vẽ hàm z = x^2 + y^2), 1<= x <= 6; 1<=y<=4;
 Sinh ra ma trận X, Y

 Tính ma trận Z = f(X,Y)


 Vẽ các ma trận (X,Y,Z)

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 18

9
11/4/2013

Chương 3. Đồ họa trong Matlab

Đồ họa trong không gian


 Vẽ đồ thị hàm hàm 2 biến z = f(x,y) (tiếp)
 Hàm [X,Y] = meshgrid(x,y): tạo 2 ma trận X, Y từ 2
vector (x,y) để tính ma trận Z = f(X,Y).
 Các hàng của ma trận X được sao chép từ vector x.
 Các cột của ma trận Y được sao chép từ vector y.
 Nếu vector x = y thì có thể dùng dạng: [X,Y] = meshgird(x);
 Hàm mesh(X,Y,Z) hoặc mesh(X,Y,Z,C):
 Dùng để
ể vẽ đồ
ồ thị Z = f(X,Y) với màu là C.
 Hàm surf(X,Y,Z) hoặc surf(X,Y,Z,C):
 Dùng để vẽ bề mặt đồ thị Z = f(X,Y) với màu là C.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 19

Chương 3. Đồ họa trong Matlab

Đồ họa trong không gian


 Vẽ đồ thị hàm hàm 2 biến z = f(x,y)
 Ví dụ

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 20

10
11/4/2013

Chương 3. Đồ họa trong Matlab

Đồ họa trong không gian


 Thiết lập các tham số cho đồ thị
 Hàm xlabel(‘tiêu đềề trục x’): tạo tiêu đề
ề trục x.
 Hàm ylabel(‘tiêu đề trục y’): tạo tiêu đề trục y.
 Hàm zlabel(‘tiêu đề trục z’): tạo tiêu đề trục z.
 Hàm title(‘tiêu đề đồ thị’): tạo tiêu đề cho đồ thị.
 Hàm axis([xmin xmax ymin ymax zmin zmax ]): thiết
lập giới hạn cho 3 trục tọa độ x: xminxmax, xminxmax
y:yminymax, và z:zminzmax.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 21

Chương 3. Đồ họa trong Matlab

Kết thúc chương

Hỏi & Đáp

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 22

11
11/4/2013

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÁC HỆ THỐNG THÔNG TIN

MATrix LABoratory

Hoang Huu Viet, Ph.D.,


E-mail: viethh.vinhuni@gmail.com

Sep., 2013

Chương 4. Lập trình trong Matlab

Nội dung
 Các lệnh nhập/xuất dữ liệu
 Các cấu
ấ trúc lập trình
 Cấu trúc if-end
 Cấu trúc switch-case-end
 Cấu trúc for-end
 Cấu trúc while-end
 Xây dựng hàm trong Matlab

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 2

1
11/4/2013

Chương 4. Lập trình trong Matlab

Các hàm nhập/xuất dữ liệu


 Hàm nhập dữ liệu từ bàn phím
 Dạng 1:
 Cú pháp: <biến> = input(‘xâu ký tự’);
 Ý nghĩa: dùng để hiển thị ‘xâu ký tự’ lên màn hình, đợi người
sử dụng nhập dữ liệu số từ bán phím và lưu giá trị vào
<biến>.
 Ví dụ:
 n = input(‘nhap
put( ap so nguyen
guye n =‘);
);
 Dạng 2:
 Cú pháp: <biến> = input(‘xâu ký tự’ ’,’s’);
 Ý nghĩa: Giống dạng 1 nhưng dùng để nhập một xâu ký tự
vào <biến>.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 3

Chương 4. Lập trình trong Matlab

Các hàm nhập/xuất dữ liệu


 Hàm xuất dữ liệu ra màn hình
 Cú pháp: disp(X);
 Ý nghĩa: Hiển thị giá trị mảng X hoặc xâu dữ liệu X ra
màn hình.
 Ví dụ 1:
 disp(‘I love Matlab so much !’);
 Ví dụ
ụ 2:
 s = sum(1:100);
 disp([‘tong tu 1 den 100 la:’,num2str(s)]);
 x = [1 2 3 4 5];
 disp([‘vector x = ‘,num2str(x)]);

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 4

2
11/4/2013

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Matlab chia các cấu trúc điều khiển thành 2
dạng:
 Các cấu trúc rẽ nhánh
 if-end
 if-else-end
 if-elseif-else-end
 switch-case-otherwise-end
 Các cấu trúc lặp
 for-end
 while-end

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 5

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc rẽ nhánh
 Cấu
ấ trúc if-end
 Cú pháp:
if <biểu thức logic>
<nhóm lệnh>
end
 Ý nghĩa:
 Nế <biểu
Nếu <biể thức>
thứ > đúng
đú thì thực
th hiện
hiệ <nhóm
< hó lệnh>.
lệ h>
 Ví dụ:
 Giải phương trình ax + b = 0  dùng nhiều câu lệnh if lồng
nhau

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 6

3
11/4/2013

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc rẽ nhánh
 Cấu
ấ trúc if-end (tiếp)
ế

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 7

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc rẽ nhánh
 Cấu
ấ trúc if-else-end
 Cú pháp:
if <biểu thức logic>
<nhóm lệnh 1>
else
<nhóm lệnh 2>
end
d
 Ý nghĩa:
 Nếu <biểu thức> đúng thì thực hiện <nhóm lệnh 1>, ngược lại
thì thực hiện <nhóm lệnh 2>.
 Ví dụ: Giải phương trình ax + b = 0

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 8

4
11/4/2013

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc rẽ nhánh
 Cấu
ấ trúc if-else-end (tiếp)
ế

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 9

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc rẽ nhánh
 Cấu
ấ trúc if-elseif-else-end
 Cú pháp:
if <biểu thức logic 1>
<nhóm lệnh 1>
elseif <biểu thức logic 2>
<nhóm lệnh 2>
else
< hó lệnh
<nhóm lệ h 3>
end
 Ý nghĩa:
 Nếu <biểu thức 1> đúng thì thực hiện <nhóm lệnh 1>, ngược
lại và nếu <biểu thức 2> thì thực hiện <nhóm lệnh 2>, ngược
lại thì thực hiện <nhóm lệnh 2>.
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 10

5
11/4/2013

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc rẽ nhánh
 Cấ trúc
Cấu t ú switch-case-otherwise-end
it h th i d
 Cú pháp:
switch <biểu thức>
case <hằng 1>
<nhóm lệnh 1>
case <hằng 2>
<nhóm lệnh 2>
...
[otherwise]
<nhóm lệnh n+1>
end
 Ý nghĩa: Nếu <biểu thức> == <hằng i>  thực hiện <nhóm
lệnh i>, ngược lại thì thực hiện <nhóm lệnh n+1>.
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 11

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc rẽ nhánh
 Cấ trúc
Cấu t ú switch-case-otherwise-end
it h th i d (tiếp)
(tiế )
 Ví dụ: Nhập vào 1 số, kiểm tra và hiển thị số đó là âm, 0, hay
dương.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 12

6
11/4/2013

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc lặp
 Cấu
ấ trúc for-end
 Cú pháp:
for <biến> = <dãy giá trị>
<nhóm lệnh>
end
 Ý nghĩa:
 <biến>
<biế > lần
lầ lượt
l t nhận
hậ các
á giá
iá trị
t ị trong
t <dã giá
<dãy iá trị>
t ị> và
à thực
th hiện
hiệ
<nhóm lệnh>.
 Chú ý: <dãy giá trị> là 1 vector các giá trị, chẳng hạn:
 <giá trị đầu>:<giá trị cuối>
 <giá trị đầu>:<bước nhảy>:<giá trị cuối>

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 13

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc lặp
 Cấu
ấ trúc for-end (tiếp)
ế
 Ví dụ: Nhập vào 1 số n, tính tổng các số chẳn 1  n.

 Chú ý: đoạn vòng lặp có thể thực hiện theo cách:

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 14

7
11/4/2013

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc lặp
 Cấu
ấ trúc while-end
 Cú pháp:
while <biểu thức>
<nhóm lệnh>
end
 Ý nghĩa:
 Khi <biểu
<biể thức>
thứ > đúng
đú thì <nhóm
< hó lệnh>
lệ h> được
đ th hiện.
thực hiệ
 Chú ý:
 Nếu <biểu thức> luôn luôn đúng thì vòng lặp thực hiện vô hạn
lần. Để kết thúc, ấn CTRL + C.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 15

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc lặp
 Cấu
ấ trúc while-end (tiếp)
ế
 Ví dụ 1: Nhập 1 số n, tính tổng s = 1 + 32 + 52 + ..+ (2n+1)2.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 16

8
11/4/2013

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc lặp
 Cấu
ấ trúc while-end (tiếp)
ế
 Ví dụ 2: Nhập 1 số n, tìm và in ra các số nguyên tố từ 2n.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 17

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc lặp
 Lệnh break
 Cú pháp:
 break;
 Ý nghĩa:
 Dùng để kết thúc vòng lặp for hoặc while. Các lệnh ở phía sau
break không được thực hiện.
 Lệnh continue
 Cú pháp:
 continue;
 Ý nghĩa:
 Kết thúc vòng lặp hiện thời của và thực hiện vòng lặp tiếp theo
trong các câu lệnh for hoặc while.
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 18

9
11/4/2013

Chương 4. Lập trình trong Matlab

Các cấu trúc điều khiển


 Cấu trúc lặp
 Lệnh return
 Cú pháp:
 return;
 Ý nghĩa:
 Dùng để kết thúc chương trình tại vị trí lệnh return.
 Ví dụ: Nhập vào 1 số nguyên dương n và tính s = 1+2+3+..n.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 19

Chương 4. Lập trình trong Matlab

Xây dựng hàm


 Ngoài các hàm có sẳn, người sử dụng có thể
xây
â dựng
d thê các
thêm á hàm
hà mớiới trong
t M fil
M-file.
 Hàm được xây dựng theo cấu trúc sau:

function [các_đối_số_ra] = tên_hàm(các_đối_số_vào)


<nội dung hàm>
end

 Chú ý
 Tên hàm đặt theo quy tắc đặt tên biến.
 Mỗi đối số cách nhau một dấu “,”.
Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 20

10
11/4/2013

Chương 4. Lập trình trong Matlab

Xây dựng hàm


 Chú ý (tiếp):
 Nếu
ế một tệp M-file chỉ viết
ế một hàm thì tên tệp phải
trùng với tên hàm.
 Một têp M-file cũng có thể viết nhiều hàm. Khi đó
hàm đầu tiên là hàm chính để gọi các hàm còn lại.
 Ví dụ 1: Hàm tính diện tích tam giác
function [
[s]
] = dien_tich(a,b,c)
( , , )
p = (a+b+c)/2;
s = sqrt(p*(p-a)*(p-b)*(p-c));
end

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 21

Chương 4. Lập trình trong Matlab

Xây dựng hàm


 Phạm vi biến
 Matlab cung cấp
ấ các kiểu
ể biến
ế trong hàm
 Biến cục bộ (local variable)
 Biến tổng thể (global variable)
 Biến cục bộ là biến được định nghĩa trong 1 hàm và
nó tồn tại chỉ khi hàm được thực hiện.
 Biến tổng thể
 Được khai báo với từ khóa global. Nó tồn tại trong môi
trường Matlab và có thể được dùng lại ở hàm khác.
 Khi dùng lại, dùng từ khóa global để khai báo lại.
 Dùng lệnh “who global” để xem biến tổng thể.

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 22

11
11/4/2013

Chương 4. Lập trình trong Matlab

Kết thúc chương

Hỏi & Đáp

Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 23

12

You might also like