Bắt đầu với MATLAB
Mục lục
Giới thiệu vềMATLAB . 1
Ngôn ngữcủa công nghệtính toán . 1
Các tính năng cơbản . 1
Các thành phần của cửa sổchương trình . 2
Ma trận và Mảng . 4
Tạo mảng . 4
Các phép toán với ma trận và mảng . 4
Ghép nối ma trận . 6
Sốphức . 7
Chỉsốcủa mảng . 8
Các biến và Workspace . 10
Chuỗi kí tự. 11
Function . 12
Vẽhình 2-D và 3-D. 13
Vẽhình 2-D. 13
Vẽhình 3-D. 15
Vẽ đồthịcon . 16
Script . 17
Ví dụvềScript . 17
Vòng lặp và các câu lệnh có điều kiện . 18
Địa chỉcủa Script . 19
Help . 21
ng thay đổi để chưa được phần tử mới. 9 A(4,5) = 17 A = 16 2 3 13 0 5 11 10 8 0 9 7 6 12 0 4 14 15 1 17 Để truy cập đến nhiều phần tử của một mảng, sử dụng dấu hai chấm (:) theo cấu trúc start:end. Dấu hai chấm cho phép chỉ ra một khoảng giá trị truy cập. Ví dụ, để truy cập đến các phần tử của cột thứ 2 nằm trên 3 hàng đầu của ma trận A: A(1:3,2) ans = 2 11 7 Nếu dấu (:) đứng riêng lẻ, MATLAB sẽ truy cập đến tất cả các phần tử của kích thước đó. Ví dụ, truy cập đến tất cả các cột của hàng thứ 3 của ma trận A: A(3,:) ans = 9 7 6 12 0 Dấu (:) cũng có thể được sử dụng để tạo các vecto gồm các phần tử cách đều, theo cấu trúc start:step:end, ví dụ: B = 0:10:100 B = 0 10 20 30 40 50 60 70 80 90 100 Nếu step không được xác định thì MATLAB sẽ gán cho step giá trị mặc định bằng 1 10 Các biến và Workspace Workspace là không gian chứa các biến được tạo ra trong MATLAB hay import vào MATLAB từ các file dữ liệu hay các chương trình khác. Ví dụ, các dòng lệnh sau sẽ tạo ra hai biến A và B trong Workspace: A = magic(4); B = rand(3,5,2); Danh mục các biến của Workspace có thể được xem bằng lệnh whos. whos Name Size Bytes Class Attributes A 4x4 128 double B 3x5x2 192 double Các biến cũng sẽ được liệt kê trong khung Workspace của cửa sổ chương trình: Các biến của Workspace sẽ không được tự động lưu lại sau khi thoát khỏi chương trình. Để lưu lại dữ liệu cho các lần sử dụng tiếp theo, sử dụng lệnh save save myfile.mat Câu lệnh trên sẽ lưu toàn bộ Workspace hiện tại thành một .MAT file. Để xóa toàn bộ các biến trong Workspace, sử dụng lệnh clear. Để gọi lại các biến đã lưu trong .MAT file, sử dụng lệnh load. load myfile.mat 11 Chuỗi kí tự Chuỗi kí tự là một dãy gồm các kí tự bất kì nằm trong dấu ngoặc đơn (‘’). Có thể gán một chuỗi kí tự cho giá trị của một biến. myText = 'Hello, world'; Sử dụng dấu ngoặc kép để thể hiện dấu ngoặc đơn trong chuỗi kí tự. otherText = 'You''re right' otherText = You're right myText và otherText là các mảng, giống như mọi biến khác của MATLAB. Loại dữ liệu của chuỗi kí tự là char, dạng viết gọn cho ‘character’. whos myText Name Size Bytes Class Attributes myText 1x12 24 char Có thể nối ghép các chuỗi kí tự bằng toán tử [] tương tự như với mảng thông thường. longText = [myText,' - ',otherText] longText = Hello, world - You're right Để chuyển đổi các giá trị số thành chuỗi kí tự, sử dụng các hàm có sẵn trong MATLAB, ví dụ num2str, int2str f = 71; c = (f-32)/1.8; tempText = ['Temperature is ',num2str(c),'C'] tempText =Temperature is 21.6667C 12 Function MATLAB cung cấp một lượng lớn các Function (hàm lệnh) có sẵn để thực hiện các tính toán hoặc nhu cầu phổ biến của người dùng. Danh sách và mô tả của các Function của MATLAB có thể xem tại địa chỉ. Khi đã biết tên gọi của một Funnction, có thể truy cập phần Help mô tả Function đó từ Command Window bằng câu lệnh Help functionname Ví dụ, giả sử ta có hai ma trận A và B A = [1 3 5]; B = [10 6 4]; Khi gọi một Function, các biến input sẽ được đặt trong dấu ngoặc tròn (): max(A); Nếu có nhiều input thì chúng sẽ được ngăn cách bởi dấu phẩy (,) max(A,B); Giá trị output của một Function có thể được gán cho một biến khác: maxA = max(A); Khi có nhiều giá trị output, chúng sẽ được ngăn cách bởi dấu phẩy (,) và đặt trong ngoặc vuông []: [maxA,location] = max(A); Các biến input dạng chuỗi kí tự được đặt trong dấu ngoặc đơn (‘’) disp('hello world'); Để gọi một Function không có biến input và không trả lại các giá trị output, chỉ cần nhập tên của Function clc Function clc sẽ xóa và trả lại Command Window trống. 13 Vẽ hình 2-D và 3-D Vẽ hình 2-D Để vẽ các đường 2-D, sử dụng lệnh plot. Ví dụ, để vẽ đồ thị hàm sin trong khoảng [0, 2π]: x = 0:pi/100:2*pi; y = sin(x); plot(x,y) Có thể dán nhãn cho các trục tọa độ và đặt tên cho đồ thị xlabel('x') ylabel('sin(x)') title('Plot of the Sine Function') 14 Có thể thay đổi các thiết lập cho đồ thị bằng cách nhập thêm các giá trị định dạng cho đồ thị. Ví dụ câu lệnh sau sẽ cho đồ thị là đường màu đỏ gạch rời. plot(x,y,'r--') Chuỗi 'r--' là chuỗi định dạng của đồ thị. Mỗi chuỗi định dạng có thể bao gồm các giá trị về màu sắc, loại đường, và loại điểm đánh dấu. Điểm đánh dấu là những điểm sẽ được đánh dấu trên các đồ thị bằng các kí hiệu như +, o hay *. Ví dụ ‘g:*’ sẽ là định dạng của một đường màu xanh nét chấm với các điểm đánh dấu dạng * Chú ý rằng tên đồ thị và nhãn của các trục tọa độ được đặt cho đồ thị thứ nhất sẽ không xuất hiện trong đồ thị tiếp theo. Một cách mặc định, MATLAB sẽ xóa các đồ thị cũ khi một lệnh plot mới được gọi, đồng thời khởi tạo lại các trục tọa độ cũng như các yếu tố khác cho đồ thị mới. Để vẽ thêm các đường mới vào đồ thị đã có, sử dụng lệnh hold x = 0:pi/100:2*pi; y = sin(x); plot(x,y) hold on y2 = cos(x); plot(x,y2,'r:') legend('sin','cos') 15 Cho đến khi có lệnh hold off, tất cả các đường được vẽ sẽ cùng hiển thị trong đồ thị hiện thời. Vẽ hình 3-D Một đồ thị 3-D cơ bản là một mặt biều thị cho một hàm 2 biến z = f (x,y). Để tính z, đầu tiên ta tạo một tập các điểm tọa độ (x,y) bằng lệnh meshgrid [X,Y] = meshgrid(-2:.2:2); Z = X .* exp(-X.^2 - Y.^2); Sau đó vẽ mặt bằng lệnh surf surf(X,Y,Z) Hai lệnh vẽ hình 3-D cơ bản là surf và mesh. Trong khi surf tô màu cả các đường và các ô của mặt thì mesh chỉ tô màu các đường và cho kết quả hình vẽ dạng khung. 16 Vẽ đồ thị con Có thể vẽ được nhiều đồ thị trong các miền con của một hình vẽ bằng cách sử dụng lệnh subplot. Ví dụ, đoạn lệnh sau sẽ vẽ 4 đồ thị trong một khung hình được chia làm 4 miền con: t = 0:pi/10:2*pi; [X,Y,Z] = cylinder(4*cos(t)); subplot(2,2,1); mesh(X); title('X'); subplot(2,2,2); mesh(Y); title('Y'); subplot(2,2,3); mesh(Z); title('Z'); subplot(2,2,4); mesh(X,Y,Z); title('X,Y,Z'); Hai giá trị đầu trong các input của subplot chỉ kích thước theo hai chiều ngang dọc của khung hình. Giá trị thứ ba chỉ ra miền con sẽ được sử dụng để vẽ đồ thị. 17 Script Một chương trình MATLAB đơn giản nhất được gọi là một tập lệnh (Script). Script là một .M file với nội dung là một chuỗi các dòng lệnh gán biến và gọi hàm của MATLAB. Thực thi một Script bằng cách nhập tên của nó vào dòng lệnh. Ví dụ về Script Để tạo một Script mới, dùng lệnh edit edit plotrand Câu lệnh trên sẽ tạo ra một file trống có tên plotrand.m. Nhập một số dòng lệnh đơn giản vẽ một vecto nhận các giá trị ngẫu nhiên n = 50; r = rand(n,1); plot(r) Sau đó, thêm các dòng lệnh vẽ đường nằm ngang đi qua giá trị trung bình: m = mean(r); hold on plot([0,n],[m,m]) hold off title('Mean of Random Uniform Data') Một điều nên làm trong khi viết code là thêm các dòng chú thích để mô tả các phần chương trình được viết. Các dòng chú thích được bắt đầu bằng dấu %. % Generate random data from a uniform distribution % and calculate the mean. Plot the data and the mean. n = 50; % 50 data points r = rand(n,1); plot(r) % Draw a line from (0,m) to (n,m) m = mean(r); hold on plot([0,n],[m,m]) hold off title('Mean of Random Uniform Lưu Script trong Folder hiện thời. Đ plotrand Cách khác để chạy một Script là click nút Vòng lặp và các câu lệnh có điều kiệ Trong một Script có thể có các vòng l Ví dụ, tạo một Script có tên calcmaen.m giá trị trung bình của các lần tính toán. nsamples = 5; npoints = 50; for k = 1:nsamples currentData = rand(npoints,1); sampleMean(k) = mean(currentData); end overallMean = mean(sampleMean) Bây giờ, thay đổi các câu lệnh bằng cách bỏ đ ấ ố ệ trung bình sau mỗi lần tính toán trong vòng l tự của lần tính toán. for k = 1:nsamples iterationString = ['Iteration #' disp(iterationString) currentData = rand(npoints,1); sampleMean(k) = mean(currentData) 18 Data') ể gọi một Script, chỉ cần nhập tên của nó vào dòng l Run trong cửa sổ Editor. n ặp và khối lệnh có điều kiện như for, if, và s để tính giá trị trung bình của 5 giá trị ngẫ i d u (;) cu i câu l nh tính sampleMean ặp, đồng thời hiển thị trong cửa sổ Command ,int2str(k)]; ệnh. witch. u nhiên, rồi sau đó tính để hiển thị các giá trị Window số thứ 19 end overallMean = mean(sampleMean) Với thay đổi này, khi gọi Script calcmean, kết quả sẽ hiển thi như bên dưới. calcmean Iteration #1 sampleMean = 0.3988 Iteration #2 sampleMean = 0.3988 0.4950 Iteration #3 sampleMean = 0.3988 0.4950 0.5365 Iteration #4 sampleMean = 0.3988 0.4950 0.5365 0.4870 Iteration #5 sampleMean = 0.3988 0.4950 0.5365 0.4870 0.5501 overallMean = 0.4935 Sửa đổi thêm Script: Trong cửa sổ Editor, thêm vào đoạn lệnh có điều kiện ở cuối caclmean.m để hiển thị thông báo về sự sai khác của giá trị overallMean: if overallMean < .49 disp('Mean is less than expected') elseif overallMean > .51 disp('Mean is greater than expected') else disp('Mean is within the expected range') end Gọi caclmean để xem kết quả của đoạn lệnh vừa bổ sung: overallMean = 0.5178 Mean is greater than expected Địa chỉ của Script 20 MATLAB sẽ chỉ truy cập được các Script hay các dữ liệu khác ở một khu vực được chỉ định của ổ cứng. Để gọi một Script thì.M file của Script đó phải nằm trong Folder hiện hành (được hiển thị trong khu vực Current Directory của màn hình). Có thể thay đổi Folder hiện hành của MATLAB bằng cách Browse đến Folder mới từ khu vực Current Directory. 21 Help Tất cả các Function có sẵn của MATLAB đểu hỗ trợ phần mô tả và hướng dẫn sử dụng đơn giản về cú pháp, input và output. Có hai cách cơ bản để truy cập và phần Help của một Function: • Mở phần Help của Function bằng một cửa sổ mới bằng lệnh doc doc mean • Để xem hướng dẫn ngắn gọn của Function ngay trong cửa sổ Command Window, dùng lệnh help help mean Để xem toàn bộ phần Help của MATLAB, click vào tab Help từ Main Menu
File đính kèm:
- Bắt đầu với MATLAB.pdf