MATrix LABoratory

 Phạmvibiến Matlab cung cấpcáckiểubiến trong hàm  Biếncụcbộ(local variable)  Biếntổng thể(global variable)  Biếncụcbộlà biếnđượcđịnh nghĩa trong 1 hàm và nó tồntạichỉ khi hàmđượcthựchiện.  Biếntổng thể  Đượckhaibáovớitừkhóa global. Nó tồntạitrongmô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ếntổng thể.

pdf47 trang | Chia sẻ: tuanhd28 | Lượt xem: 1836 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu MATrix LABoratory, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
11/4/2013 1 KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÁC HỆ THỐNG THÔNG TIN Hoang Huu Viet, Ph.D., MATrix LABoratory 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 i h iês n v 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 11/4/2013 2 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 ễ T Dũ Hà T ầ Đứ Lậ t ì hguy n rung ng, r n c, p r n 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 Designed by Hoàng Hữu Việt, Computer Engineering Department. . Slide 4 11/4/2013 1 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 11/4/2013 2 Chương 1. Nhập môn Giới thiệu về MATLAB  MATLAB (MATrix LABoratory) được Cleve Moler hát i h à ối thậ iê 1970p m n v o cu p n n .  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 ( Cleve Moler cũng là đồng tác giả của các quyển sách Designed by Hoàng Hữu Việt, Computer Engineering Department.   Numerical Computing with MATLAB  Experiments with MATLAB  Cleve Moler hiện là chủ tịch công ty MatWorks. 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 ka or s.  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++,... ể ố ế Designed by Hoàng Hữu Việt, Computer Engineering Department.  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). Slide 4 11/4/2013 3 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 cấp các hàm đồ họa 2-D, 3-D cho hiển thị dữ Designed by Hoàng Hữu Việt, Computer Engineering Department. 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 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: Designed by Hoàng Hữu Việt, Computer Engineering Department.  Kết thúc Matlab  Gõ exit và ấn enter tại dấu nhắc lệnh >>. Slide 6 11/4/2013 4 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. Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 7 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). 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 Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 8 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ỏ 11/4/2013 5 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 Designed by Hoàng Hữu Việt, Computer Engineering Department. ... .  Ví dụ: >> x = 1, y = 2, z = 3 (enter) >> x + y; y + z; z + x; 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ổ Designed by Hoàng Hữu Việt, Computer Engineering Department. bị mất khi dùng lệnh xóa  clear all. Slide 10 11/4/2013 6 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 Designed by Hoàng Hữu Việt, Computer Engineering Department.  Chọn File Set Path  Chọn Add Folder  Chọn Save Slide 12 11/4/2013 7 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 đ iết à ột tệ h t ì h à đóược v v o m p c ương r n v 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 ó thể là ột tệ i t h ặ f ti Designed by Hoàng Hữu Việt, Computer Engineering Department.  - e c m p scr p o c unc on  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. 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 Designed by Hoàng Hữu Việt, Computer Engineering Department. .  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. Slide 14 11/4/2013 8 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 11/4/2013 1 KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÁC HỆ THỐNG THÔNG TIN Hoang Huu Viet, Ph.D., MATrix LABoratory 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 Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 2  Một số lệnh cơ bản 11/4/2013 2 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 Designed by Hoàng Hữu Việt, Computer Engineering Department.  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). 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 11/4/2013 3 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 Designed by Hoàng Hữu Việt, Computer Engineering Department.  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. 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); Designed by Hoàng Hữu Việt, Computer Engineering Department.  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); Slide 6 11/4/2013 4 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] Designed by Hoàng Hữu Việt, Computer Engineering Department.  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) 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. Designed by Hoàng Hữu Việt, Computer Engineering Department.  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. Slide 8 11/4/2013 5 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 Designed by Hoàng Hữu Việt, Computer Engineering Department.  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. 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 x+ x Designed by Hoàng Hữu Việt, Computer Engineering Department.  , , -,  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,.. Slide 10 11/4/2013 6 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. Designed by Hoàng Hữu Việt, Computer Engineering Department.  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] 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) cos(x) cos(x)x Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 12 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 11/4/2013 7 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. Designed by Hoàng Hữu Việt, Computer Engineering Department.  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 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: = ;  Ý nghĩa: Dùng để gán giá trị của cho  Chú ý:  Nếu không có dấu “;” phía sau thì kết quả của biến sẽ hiển thị lên cửa sổ lệnh. Designed by Hoàng Hữu Việt, Computer Engineering Department.  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). Slide 14 11/4/2013 8 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ú ý Designed by Hoàng Hữu Việt, Computer Engineering Department.  :  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. 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 Designed by Hoàng Hữu Việt, Computer Engineering Department. 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] Slide 16 11/4/2013 9 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] = min(X): trả về giá trị và vị trí của phần tử bé Designed by Hoàng Hữu Việt, Computer Engineering Department.  , 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]. 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 Chỉ số sắp xếp lưu ở ma trận I Designed by Hoàng Hữu Việt, Computer Engineering Department. . .  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. Slide 18 11/4/2013 10 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 Designed by Hoàng Hữu Việt, Computer Engineering Department.  .  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. 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ệ à ỗi hầ tử đ đá h hỉ ố thu m m p n ược n c s eo 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ố Ví dụ: A = randi(10 2 3 4); Designed by Hoàng Hữu Việt, Computer Engineering Department. . , , ,  A(1,1,1) = 1; A(1,1,2) = 5; A(1,1,3) = 7; A(1,1,4) = 4; Slide 20 11/4/2013 11 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ừ hầ tử ủ ảng p n 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: ./ Designed by Hoàng Hữu Việt, Computer Engineering Department.  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]; 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 Designed by Hoàng Hữu Việt, Computer Engineering Department. .  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]; Slide 22 11/4/2013 12 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 Designed by Hoàng Hữu Việt, Computer Engineering Department. .  Ví dụ:  A = [1 1 0; 2 5 1; 5 0 3]; ~A = [0 0 1; 0 0 0; 0 1 0]; 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 ặ dấ ‘ ‘c p u .  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: Designed by Hoàng Hữu Việt, Computer Engineering Department.  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ự? Slide 24 11/4/2013 13 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ê hn sau: Đị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 Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 25 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ố 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 : ghi tất cả các biến vào tệp với phần mở rộng .mat. Designed by Hoàng Hữu Việt, Computer Engineering Department.  save x: ghi biến x vào tệp.  load: đọc các biến từ tệp  load : đọc tất cả các biến từ tệp.  load x: đọc chỉ biến x từ tệp. Slide 26 11/4/2013 14 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 11/4/2013 1 KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÁC HỆ THỐNG THÔNG TIN Hoang Huu Viet, Ph.D., MATrix LABoratory 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 ử iế đồ hị Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 2  n s a trực t p t  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 11/4/2013 2 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ị Designed by Hoàng Hữu Việt, Computer Engineering Department.  Cú pháp: clf;  Đóng tất cả các cửa sổ  Cú pháp: close all; 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 11/4/2013 3 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 11/4/2013 4 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 trục hoành Designed by Hoàng Hữu Việt, Computer Engineering Department.  ,  Trục tung: set(gca,’XTickLabel’,);  Trục hoành: set(gca,’YTickLabel’,); Slide 8 11/4/2013 5 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ử Designed by Hoàng Hữu Việt, Computer Engineering Department. 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). Slide 10 11/4/2013 6 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ẽ. Designed by Hoàng Hữu Việt, Computer Engineering Department.  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ị. Slide 12 11/4/2013 7 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); Designed by Hoàng Hữu Việt, Computer Engineering Department.  ...  h(n) = plot(x,yn);  vẽ hàm yn = fn(x); 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 11/4/2013 8 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 11/4/2013 9 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 Designed by Hoàng Hữu Việt, Computer Engineering Department.  Tính ma trận Z = f(X,Y)  Vẽ các ma trận (X,Y,Z) Slide 18 11/4/2013 10 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): ể ồ Designed by Hoàng Hữu Việt, Computer Engineering Department.  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. 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 11/4/2013 11 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 Designed by Hoàng Hữu Việt, Computer Engineering Department. , y:yminymax, và z:zminzmax. 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/4/2013 1 KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÁC HỆ THỐNG THÔNG TIN Hoang Huu Viet, Ph.D., MATrix LABoratory 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 Designed by Hoàng Hữu Việt, Computer Engineering Department. Slide 2  Xây dựng hàm trong Matlab 11/4/2013 2 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: = 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 .  Ví dụ:  n = input(‘nhap so nguyen n =‘); Designed by Hoàng Hữu Việt, Computer Engineering Department.  Dạng 2:  Cú pháp: = 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 . 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: Designed by Hoàng Hữu Việt, Computer Engineering Department.  s = sum(1:100);  disp([‘tong tu 1 den 100 la:’,num2str(s)]);  x = [1 2 3 4 5];  disp([‘vector x = ‘,num2str(x)]); Slide 4 11/4/2013 3 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 Designed by Hoàng Hữu Việt, Computer Engineering Department.  Các cấu trúc lặp  for-end  while-end 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 end  Ý nghĩa: Nế đú thì th hiệ Designed by Hoàng Hữu Việt, Computer Engineering Department.  u u c ng ực n n m n .  Ví dụ:  Giải phương trình ax + b = 0  dùng nhiều câu lệnh if lồng nhau Slide 6 11/4/2013 4 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 else d Designed by Hoàng Hữu Việt, Computer Engineering Department. en  Ý nghĩa:  Nếu đúng thì thực hiện , ngược lại thì thực hiện .  Ví dụ: Giải phương trình ax + b = 0 Slide 8 11/4/2013 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-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 elseif else Designed by Hoàng Hữu Việt, Computer Engineering Department. n m n end  Ý nghĩa:  Nếu đúng thì thực hiện , ngược lại và nếu thì thực hiện , ngược lại thì thực hiện . Slide 10 11/4/2013 6 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ấ t ú it h th i d u r c sw c -case-o erw se-en  Cú pháp: switch case case Designed by Hoàng Hữu Việt, Computer Engineering Department. ... [otherwise] end  Ý nghĩa: Nếu ==  thực hiện <nhóm lệnh i>, ngược lại thì thực hiện . 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ấ t ú it h th i d (tiế ) u r c sw c -case-o erw se-en p  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 11/4/2013 7 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 = end  Ý nghĩa: lầ l t hậ á iá t ị t à th hiệ Designed by Hoàng Hữu Việt, Computer Engineering Department.  n n ượ n n c c g r rong y g r v ực n .  Chú ý: là 1 vector các giá trị, chẳng hạn:  :  :: 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. Designed by Hoàng Hữu Việt, Computer Engineering Department.  Chú ý: đoạn vòng lặp có thể thực hiện theo cách: Slide 14 11/4/2013 8 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 end  Ý nghĩa: Khi đú thì đ th hiệ Designed by Hoàng Hữu Việt, Computer Engineering Department.  u c ng n m n ược ực n.  Chú ý:  Nếu 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. 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 11/4/2013 9 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 Designed by Hoàng Hữu Việt, Computer Engineering Department.  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. Slide 18 11/4/2013 10 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ể â d thê á hà ới t M filx y ựng m c c m m rong - e.  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) end Designed by Hoàng Hữu Việt, Computer Engineering Department.  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 “,”. Slide 20 11/4/2013 11 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) Designed by Hoàng Hữu Việt, Computer Engineering Department. _ p = (a+b+c)/2; s = sqrt(p*(p-a)*(p-b)*(p-c)); end 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ể Designed by Hoàng Hữu Việt, Computer Engineering Department.  Đượ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ể. Slide 22 11/4/2013 12 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

Các file đính kèm theo tài liệu này:

  • pdfmatlab_7664.pdf
Tài liệu liên quan