Matlab và ứng dụng - Ma trận trong Matlab

 Ma trận là một mảng

hình chữ nhật các con số

 Ma trận gồm các dòng

(row) và các cột

(column). Các dòng hay

cột gọi chung là vector.

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

 Một con số trong Matlab

là một ma trận 1x1

 Thế mạnh của Matlab so

với các ngôn ngữ lập

trình khác là tính toán

rất nhanh trên ma trận.

pdf8 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 3075 | Lượt tải: 5download
Tóm tắt nội dung Matlab và ứng dụng - Ma trận trong Matlab, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
2/9/2010
Nguyễn Thành Nhựt 1
1ntnhut@hcmus.edu.vn
Ma trận (matrix)
 Ma trận là một mảng 
hình chữ nhật các con số
 Ma trận gồm các dòng
(row) và các cột
(column). Các dòng hay 
cột gọi chung là vector.
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
 Một con số trong Matlab 
là một ma trận 1x1
 Thế mạnh của Matlab so 
với các ngôn ngữ lập 
trình khác là tính toán 
rất nhanh trên ma trận.
2ntnhut@hcmus.edu.vn
2/9/2010
Nguyễn Thành Nhựt 2
hập ma trận
 Nhập trực tiếp danh 
sách các phần tử
 Phát sinh ma trận bằng 
các hàm sẵn có
 Nhập từ file
 Tạo ma trận bằng các 
file .m 
A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
 Dấu [ và ] mở đầu và kết thúc 
nhập ma trận.
 Dấu ; kết thúc một dòng.
 Các phần tử cách nhau bằng 
khoảng trắng hoặc dấu ,
3
ntnhut@hcmus.edu.vn
Tổng các cột và chuyển vị của ma trận
 A =
 16 3 2 13
 5 10 11 8
 9 6 7 12
 4 15 14 1
 >> sum(A)
 ans =
34 34 34 34
 >> A’
 ans =
16 5 9 4
3 10 6 15
2 11 7 14
13 8 12 1
 >> sum(A’)
 ans =
34 34 34 34
4
ntnhut@hcmus.edu.vn
2/9/2010
Nguyễn Thành Nhựt 3
Đường chéo của ma trận
 A =
 16 3 2 13
 5 10 11 8
 9 6 7 12
 4 15 14 1
 >> diag(A)
 ans =
16
10
7
1
5
ntnhut@hcmus.edu.vn
Trích một phần tử
 Phần tử Aij được trích 
bằng biểu thức A(i,j)
 A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
 A(4,2) là phần tử ở dòng 
4 cột 2, tức là phần tử 15.
 Phép trích chỉ có một 
chỉ số sẽ theo thứ tự 
duyệt theo cột. (xem 
ma trận là một 
vector cột dài)
 A(8) là phần tử thứ 8 
duyệt theo cột từ trái 
qua phải, từ trên 
xuống dưới.
6
ntnhut@hcmus.edu.vn
2/9/2010
Nguyễn Thành Nhựt 4
Chỉ số vượt khỏi kích thước ma trận
 >> t = A(4,5)
 “Index exceeds matrix 
dimensions.”
 Việc truy xuất phần tử 
vi phạm kích thước ma 
trận
 Nằm bên phải phép gán
 >> X = A;
 >> X(4,5) = 17
 X =
16 3 2 13 0
5 10 11 8 0
9 6 7 12 0
4 15 14 1 17
 Mở rộng ma trận
 Nằm bên trái phép gán
7
ntnhut@hcmus.edu.vn
Dấu hai chấm “:” (colon)
 Dấu hai chấm “:” là một trong những phép toán 
quan trọng nhất trong Matlab.
 Ví dụ:
 1:10 là một vector dòng gồm các số nguyên từ 1 đến 10
 1 2 3 4 5 6 7 8 9 10
 Để tạo bước tăng/giảm khác 1
 100:-7:50
100 93 86 79 72 65 58 51
 0:pi/4:pi
0 0.7854 1.5708 2.3562 3.1416
8ntnhut@hcmus.edu.vn
2/9/2010
Nguyễn Thành Nhựt 5
Dùng dấu hai chấm trong chỉ số
 Ví dụ:
 A(1:k,j) gồm k số đầu tiên ở cột thứ j của ma trận A.
 sum(A(1:4,4)) tính tổng 4 số đầu tiên ở cột thứ 4 của ma 
trận A.
 Dấu hai chấm đứng một mình sẽ chỉ toàn bộ phần tử 
của dòng hoặc cột.
 Từ khoá “end” chỉ chỉ số cuối cùng của dòng hoặc 
cột.
 Ví dụ: 
 A(:,end) chỉ toàn bộ phần tử ở cột cuối cùng.
9ntnhut@hcmus.edu.vn
Trích nhiều phần tử
 Sử dụng dấu “[,]” để liệt kê vị trí cần trích
 Ví dụ:
 A = [2 4 3; 8 6 7], x = [9 4 2 1]
 A([2,1],2)  [6 4]’ , x([2,4])  4 1
 Có thể sử dụng dấu “:” để trích dãy các phần 
tử 
 Ví dụ:
 A(2,1:3)  8 6 7 , x(3:-1:1)  2 4 9
10ntnhut@hcmus.edu.vn
2/9/2010
Nguyễn Thành Nhựt 6
Phát sinh ma trận (MT) bằng hàm sẵn có
MT 0 zeros(m,n)
MT 1 ones(m,n)
MT đơn vị eye(n)
MT đường chéo diag([a,b,c,…])
Ma phương magic(n)
MT các số thực ngẫu nhiên từ 0 đến 1 rand(m,n)
 Z = zeros(2,4)
Z =
0 0 0 0
0 0 0 0
F = 5*ones(2,3)
F =
5 5 5
5 5 5
11
ntnhut@hcmus.edu.vn
hập ma trận bằng hàm load
 Giả sử ta có một file 
magik.dat có nội dung 
như sau (các số cách 
nhau bởi khoảng trắng)
16.0 3.0 2.0 13.0
5.0 10.0 11.0 8.0
9.0 6.0 7.0 12.0
4.0 15.0 14.0 1.0
 Dòng lệnh
>>load magik.dat
sẽ đọc file magik.dat, tạo 
biến có tên là magik, là 
ma trận các phần tử có 
trong file magik.dat.
12
ntnhut@hcmus.edu.vn
2/9/2010
Nguyễn Thành Nhựt 7
Tạo ma trận bằng file .m
 File .m là một file văn 
bản ghi các dòng lệnh 
Matlab.
 Có thể soạn thảo bằng 
MATLAB Editor hoặc 
bất kỳ trình soạn thảo 
văn bản nào.
 Lưu file có đuôi .m
 Gõ tên file để thực thi 
nội dung các dòng lệnh 
trong file.
Ví dụ: 
 tạo một file có nội dung như 
sau:
A=[ 16.0 3.0 2.0 13.0
5.0 10.0 11.0 8.0
9.0 6.0 7.0 12.0
4.0 15.0 14.0 1.0];
 Lưu với tên magik.m. Dòng 
lệnh
>>magik
sẽ đọc file và tạo biến A là ma 
trận như trên.
13
ntnhut@hcmus.edu.vn
Ghép (concatenation) hai ma trận
A 
1 2 3
4 5 6
Thêm cột Thêm dòng
B
10 12
11 13
D = [A B] E = [A; C]
C
7 8 9
9 7 8
8 9 7
1 2 3 10 12
4 5 6 11 13
1 2 3
4 5 6
7 8 9
9 7 8
8 9 7
Chú ý kích thước của dòng hay cột tương ứng
14
ntnhut@hcmus.edu.vn
2/9/2010
Nguyễn Thành Nhựt 8
Xoá dòng, xoá cột
 A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
 X = A;
 X(: , 2) = []
 X =
16 2 13
5 11 8
9 7 12
4 14 1
 Không được xoá 1 phần tử kiểu như X(1,2) = []
 Dùng chỉ số với dấu : để xoá 1 hay nhiều phần tử
 X(2:2:10) = [] X  16 9 2 7 13 12 1
15
ntnhut@hcmus.edu.vn

File đính kèm:

  • pdfMatlab và ứng dụng - Ma trận trong Matlab.pdf