Lưu ý: Khi hai mảng có cùng kích thước được so sánh với nhau thì toán tử so sánh sẽ thực hiện so sánh từng phần tử với nhau.. Các toán tử , = chỉ so sánh phần thực của các toán hạn
Trang 1Phép toán và vector ma trận
Các phép toán tử so sánh
Vector
Ma trận
Trang 3 Lưu ý:
Khi hai mảng có cùng kích thước được so sánh với nhau thì toán tử so sánh sẽ thực hiện so sánh từng phần tử với nhau.
Các toán tử <, >, <=, and >= chỉ so sánh
phần thực của các toán hạng với nhau.
Các toán tử == and = sẽ so sánh cả phần ∼ thực và ảo của hai toán hạng.
Kết quả so sánh cho ta 1 nếu phép so sánh
là TRUE và ngược lại 0 nếu FALSE
Trang 5So sánh 2 vector hay 2 ma trận
Trong trường hợp này thì toán tử so sánh
thực hiện cho ta kết quả so sánh của từng
phần tử tương ứng với hai vector hay hai ma trận với nhau:
Trang 8Các toán tử Logic
Lưu ý: Các toán tử này làm việc với từng phần tử của Mảng,
với 0 biểu diễn FALSE còn 1 hay bất kỳ phần tử khác 0 nào biểu diễn TRUE
Các toán tử Logic trả lại 1 mảng logic bất kỳ với các phần tử 0 (FALSE) 1 (TRUE).
Trang 9 Các ký hiệu trên cũng có thể thay thế bằng cách sử dụng các hàm MatLab ở dạng and(A,B), or(A,B), hay not(A,B) Hoặc tuyệt đối được biểu diễn như sau
xor(A,B) Trình tự ưu tiên toán tử logic là NOT, OR,
và AND.
Phép toán sử dụng toán tử AND(&) cho kết quả
TRUE nếu cả hai toán hạng đều TRUE về mặt logic Nói theo thuật ngữ số, thì phép toán AND cho ta kết quả TRUE nếu cả hai toán hạng đều khác 0
Trang 11 Các số 1 chỉ ra các phần tử tương ứng khác không của cả a và b.
Phép toán OR (|) cho kết quả TRUE nếu một toán hạng hoặc cả hai toán hạng là TRUE về mặt Logic Nói theo thuật ngữ số thì phép toán OR chỉ cho kết quả FALSE khi cả hai toán hạng đều bằng không.
Ví dụ:
>> a | b
ans =
1 1 0 1 1
Trang 12 Phép toán NOT (~) thực hiện phép đảo toán hạng, cho kết quả FALSE nếu toán hạng là
TRUE và cho kết quả TRUE nếu toán hạng là
FALSE Theo thuật ngữ số thì các toán hạng bằng không sẽ bằng một và tất cả các toán hạng khác đều bằng không.
Ví dụ:
>> a ∼
ans =
0 0 1 0 1
Trang 15Đườ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
>>sum(A)
ans=
34 34 34 34
>> diag(A) ans =
16
10
7
1
5
Trang 16ma 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.
Trang 17Chỉ số vượt khỏi kích thước ma trận
Trang 18Dấu hai chấm “:” (colon)
Dấu “:” là một trong những phép toán quan trọng nhất trong MatLab.
Ví dụ:
• 1:10 là 1 vector dòng gồm các số nguyên từ 1 đến
Trang 19Dùng dấu hai chấm trong chỉ số
Ví dụ:
• A(1:k,j) gồm k số đầu tiên của 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ủa 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ừ khóa “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
Trang 20 Ví dụ:
• A(2,1:3) 8 6 7 , x(3:-1:1) 2 4 9
Trang 22Nhập ma trận bằng hàm loud
Giả sử ta có 1 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
Trang 23MatLab 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
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.
Trang 26Ma trận và mảng
Các phép toán trong ma trận
Mảng (Array or Vector)
Trang 27Các phép toán trong ma trận
Trang 28Các phép toán trong ma trận
Trang 29Phép chia ma trận
Trang 30Mảng (Array or Vector)
Khi ma trận không làm việc trên đại số tuyến tính, ma trận đơn giản chỉ là một mảng hai chiều.
Các phép toán cộng, trừ vẫn không đổi giữa ma trận và mảng Nhưng các phép toán mang tính nhân sẽ khác.
MatLab dùng dấu chấm trước các phép toán (mang tính nhân) trên mảng.
Trang 31Phép toán trên vector (mảng 1 chiều)
Trang 32Phép toán trên ma trận (mảng 2 chiều)
Trang 33Ứng dụng phép toán mảng để tạo bảng số liệu
Trang 34Ma trận và vô hướng (scalar)
Trang 35Chỉ số Logic (Logical Subscripting)
Trang 36phẩy khi trích phần tử
ma trận thì trả về cột