Toán tử so sánh trong matlab

Phép toán và vector ma trậnCác phép toán tử so sánhVectorMa trậnCác toán tử so sánh:Trong Matlab các toán tử so sánh được biểu diễn như sau: Toán tử Ý nghĩa < Nhỏ hơn > Lớn hơn <= Nhỏ hơn hoặc bằng >= Lớn hơn hoặc bằng ~= Khác nhau == Trùng nhau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.Ví dụ:>>1==2• ans =• 0>> 3>1• ans = • 1>> 4<=10• ans =• 1>> 3~=7• ans= • 1So 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:Ví dụ:•>> A=[1 3 4; 2 8 7; 6 9 5]• A = 1 3 4 2 8 7 6 9 5>> B=[3 1 4; 7 8 2; 6 5 9] B = 3 1 4 7 8 2 6 5 9>> A==B ans = 0 0 1 0 1 0 1 0 0>> A =B∼ ans = 1 1 0 1 0 1 0 1 1>> A >= B ans = 0 1 1 0 1 1 1 1 0 >> A < BCá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). Ký hiệu Toán tử Logic& AND| OR~ NOT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.Ví dụ: >> a=[3 5 0 4 0] a = 3 5 0 4 0>> b=[3 1 0 0 2] b = 3 1 0 0 2>> a & b ans = 1 1 0 0 0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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 1Ma 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 chung gọi là Vector.Nhập ma trậnNhập trực tiếp danh sách từ phần tửPhát sinh ma trận bằng các hàm có sẵn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Đườ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 5Trí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.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ánDấ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 • 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.7854 1.5708 2.3562 3.1416Dù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 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 9Phát sinh ma trận bằng hàm sẵn cóMa trận 0 zeros(m,n)Ma trận 1 ones(m,n)Ma trận đơn vị eye(n)Ma trận đường chéo diag([a,b,c,…])Ma trận phương magic(n)Ma trận các số thực ngẫu nhiên từ 0 đến 1rand(m,n)Z = zeros(2,4) F = 5*ones(2,3) Z = F = 0 0 0 0 5 5 5 0 0 0 0 5 5 5Nhậ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.0Tạ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 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.Ghép (concatenation) hai ma trậnA 1 2 34 5 6Thêm cột Thêm dòngB 10 1211 13D = [A B] E = [A; C]C 7 8 99 7 88 9 71 2 3 10 124 5 6 11 131 2 34 5 67 8 99 7 88 9 7Xóa dòng, xóa cộtX(: , 2) = [] X = 16 2 13 5 11 8 9 7 12 4 14 1A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 X = A;

Chia trái\Chia trái.\Luỹ thừa.^Luỹ thừa..^Phép gán.=Phép gán.=Thứ tự ưu tiên các phép toánNgoặc đơnLuỹ thừaNhân, chiaCộng, trừ2.1.2 Các phép toán quan hệCác phép toán quan hệ bao gồm- Nhỏ hơn: <

- Nhỏ hơn hoặc bằng: <=
- Lớn hơn: >- Lớn hơn hoặc bằng: >=- Bằng: = =- Không bằng: ~ =Biểu thức có các toán tử quan hệ nhận giá trị đúng (true) hoặc sai(false). Trong Matlab, biểu thức đúng có giá trị là 1, biểu thức sai có giá trị là0.Ví dụ:>> x=3==3x=1>> x=3~=3x=02.1.3 Các phép toán logic và các hàm logicCác phép toán logic được thực hiện bởi các câu lệnh sau:-Phép And: &-Phép Or: |-Phép phủ định: ~15 Các hàm logic: and, or, xor, not2.1.4 Số phức và các phép toán về số phứcBiểu diễn số phức:Tên biến = Phần thực + Phần ảo ihoặcTên biến = Phần thực + Phần ảo jVí dụ: a= 2+3iCác phép toán đối với số phức: Cộng(+), trừ(-), nhân(*), chia(/)Các hàm đặc biệt trên số phức: x=a+bireal(x): Trả về phần thực của số phức ximage(x): Trả về phần ảo của số phức xconj(x): Trả về số phức liên hợp của số phức xVí dụ:>> x=1+1i ↵x=1.0000 + 1.0000i>> conj(x) ↵ans =1.0000 - 1.0000iabs(x): Trả về modul của số phức xVí dụ>> x=3+4i ↵x=3.0000 + 4.0000i>> abs(x) ↵ans =5angle(x): agument của số phức x (arctn(b/a))Ví dụ:x=1.0000 + 1.0000i16 >> angle(x) ↵ans =0.78542.1.5 Các hàm toán họcTrong mục này giới thiệu một số hàm toán học thông dụng thường gặpkhi lập trình.Tên hàmSincosTanasinacosatanacossinhcoshtanhasinhacoshatanhabsroundFixfloorceilremgcdLcmexpLogLog2Log10sqrtCú phápsin(x)cos(x)tan(x)asin(x)acos(x)atan(x)acos(x)sinh(x)cosh(x)tanh(x)asinh(x)acosh(x)atanh(x)abs (x)round(x)fix(x)floor(x)ceil(x)rem(x,y)gcd(x,y)lcm(x,y)exp(x)log(x)log2(x)log10(x)sqrt(x)Giải thíchHàm sinHàm cosHàm tangHàm arcsinHàm arccosHàm arctangHàm arccosHàm sin hyperbolicHàm cos hyperbolicHàm tang hyperbolicHàm arcsin hyperbolicHàm arccos hyperbolicHàm arctang hyperbolicGiá trị tuyệt đối hoặc modulo của số phứcLàm tròn đến số nguyên gần nhấtLàm tròn về khôngLàm tròn về - ∞Làm tròn về + ∞Phần dư của x chia yƯớc số chung lớn nhất của hai số nguyên x và yBội số chung nhỏ nhất của hai số nguyên x và yLuỹ thừa của eLogarit cơ số elogarit cơ số 2logarit cơ số 10Căn bậc hai của x2.2 Ma trậnKhái niệmMa trận là một mảng hai chiều mà các phần tử có thể là số thực hoặc sốphức hoặc cũng có thể là các ký tự không số.17 Khi biểu diễn ma trận trong Matlab thì tên ma trận là một chuỗi có tối đalà 31 ký tự và bắt đầu là chữ sau đó có thể là chữ hoặc số hoặc một số ký tự đặcbiệt (ngoại trừ các ký tự: +,-,*,/,..).Bao quanh các phần tử của ma trận là dấu ngoặc vuông: [ai j]Các phần tử trong một hàng của ma trận được cách nhau bởi ký tự trắng(space) hoặc dấu phẩyCác hàng được phân cách nhau bởi dấu chấm phẩyCác cách để nhập dữ liệu cho ma trận(1) Liệt kê trực tiếpVí dụ:>> M=[3 2 3;3 4 5] ↵M=323345(2) Nhập thông qua lệnh inputVí dụ:>> M=input('Hay nhap ma tran M=') ↵Hay nhap ma tran M=[3 4 5;4 3 2] ↵M=345432Chú ý: - Khi kết thúc lệnh có thể dùng dấu chấm phẩy (;) hoặc không.Nếu kết thúc bằng dấu chấm phẩy thì kết quả không hiển thị lên màn hình. Nếukhông sử dụng dấu chấm phẩy thì kết quả được hiển thị lên màn hình. Tuynhiên trong cả hai trường hợp dữ liệu đều được lưu trong không gian làm việccủa Matlab và được sử dụng cho lần tiếp theo.Ví dụ:>> a=[1 2;2 3]; ↵>> b=[4 5;1 2]; ↵>> c=a*b ↵c=18 6911 16- Các phần tử trong ma trận có thể là số phức:Ví dụ:>> M=[1+i 2+2i; 1+2i 2+i] ↵M=1.0000 + 1.0000i 2.0000 + 2.0000i1.0000 + 2.0000i 2.0000 + 1.0000i- Các phần tử trong ma trận có thể là các ký tự (biểu tượng). Nhưngtrước hết cần khai báo bằng lệnh Syms (Khai báo là các biến Symbolic)Ví dụ:>> syms sinx cosx tanx ↵>> b=[sinx cosx; cosx tanx] ↵b=[ sinx, cosx][ cosx, tanx]Hiển thị dữ liệu của ma trận- Gõ trực tiếp tên ma trận sau đó nhấn phím ↵Ví dụ:>> b=[sinx cosx; cosx tanx]; ↵>> b ↵b=[ sinx, cosx][ cosx, tanx]- Dùng lệnh disp để hiển thị dữ liệu nhưng không hiển thị tên ma trận.Ví dụ:>> b=[sinx cosx; cosx tanx]; ↵>> disp(b) ↵[ sinx, cosx][ cosx, tanx]19 2.3 Xử lý trong ma trận và vectorTạo vectorĐể tạo vector ta có các cách sau:STT1Cú phápX=[x1 x2..xn ]Chú thíchTạo vector hàng x chứa cácphần tử đặc biệtVí dụ>> x=[1 4 2]x=142Tạo vector hàng x bắt đầutại first và kết thúc là phần >> x=1:4.32X=first:lasttử có giá trị nhỏ hơn hoặc x =1bằng last, phần tử sau bằng234phần tử trước cộng 1Tạo vector x bắt đầu tạifirst, phần tử sau bằng phần >> x=1:2:63X=first:inc:lasttử trước cộng inc, kết thúc là x =1phần tử có giá trị nhỏ hơn35hoặc bằng lastTạo vector hàng x bắt đầu4X=linspace(first, last, n)tại first, kết thúc là last,vector có n phần tử.>>x=linspace(2,8,4)x=246Truy nhập tới các phần tử của ma trậnMatlab cho phép ta xử lý đến từng phần tử của ma trận. Để truy nhập tớiphần tử của ma trận ta sử dụng tới chỉ số của từng phần tử:Cú pháp: Tên ma trận(chỉ số hàng, chỉ số cột)Ví dụ:>> a=[1 3; 2 1] ↵a=1321>> a(1,2)ans =3208 Lưu ý: Chỉ số của mảng phải là số nguyên dương hoặc có kiểu logic2.4 Các ma trận đặc biệtMa trận zeros: zeros(số hàng, số cột)Tất cả các phần tử trong ma trận đều bằng khôngVí dụ:>> c=zeros(2,3) ↵c=000000Ma trận Ones: Ones(số hàng, số cột)Ví dụ>> c=ones(2,3) ↵c=111111Ma trận ma phươngTổng tất cả giá trị các phần tử trên hàng=tổng tất cả giá trị các phần tửtrên cột=tổng các giá trị các phần tử trên đường chéo của ma trậnCú pháp: magic(cấp ma trận)Ví dụ:>> magic(3) ↵ans =816357492Ma trận eye (Ma trận đồng nhất)Tất cả các phần tử trên đường chéo bằng 1, các phần tử khác có giá trị 0.Cú pháp: eye(số hàng, số cột)Ví dụ:>> m=eye(2,3) ↵21