Chương 1. Giới thiệu Matlab Window), Lịch sử Lệnh (Command History), Chương trình Soạn thảo và Gỡ rối (Editor and Debugger), và một Trình duyệt (Browser) để xem trợ giúp, Không gian Làm việc (Workspace), các Tệp, và Đường dẫn Tìm kiếm (Search Path). • Thư viện Hàm Toán học (Mathematical Function Library). Đây là một tập hợp các thuật toán tính toán trải rộng từ các hàm cơ cở như cộng, trừ, sin, cos, các phép tính số học phức, tới các hàm phức tạp hơn như đảo ma trận, tính giá trị riêng (eigenvalue) của ma trận, các hàm Bessel, và các phép biến đổi nhanh.
• Ngôn ngữ MATLAB (MATLAB Language). Đây là ngôn ngữ ma trận/mảng bậc cao với các khai báo luồng điều khiển, các hàm số, các cấu trúc dữ liệu, vào/ra, các đặc điểm lập trình hướng đối tượng. Nó cho phép viết cả các chương trình gọn nhẹ hay các chương trình ứng dụng phức tạp.) MATLAB có nhiều phương tiện hiển thị vector và ma trận ở dạng đồ thị, cũng như sửa đổi và in các đồ thị này. Nó bao gồm các hàm bậc cao để trực giác hóa các dữ liệu hai và ba chiều, xử lý ảnh, hoạt hình, và biểu diễn đồ họa.
Nó cũng bao gồm cả các hàm bậc thấp cho phép tùy biến hóa đồ họa cũng như xây dựng các giao diện đồ họa hoàn chỉnh cho các ứng dụng MATLAB của người sử dụng. • Giao diện Chương trình Ứng dụng MATLAB (MATLAB Ap- plication Program Interface [API]). Đây là một thư viện cho phép viết các chương trình C và Fortran tương tác với MATLAB. Nó có cả các phương tiện để gọi các thường trình (routine) từ MATLAB, dùng MATLAB như là động cơ tính toán, và dùng để đọc và viết MAT-files.
MATLAB cung cấp một họ các giải pháp theo từng ứng dụng, được gọi la hộp công cụ (toolbox). Hộp công cụ MATLAB bao gồm một tập hợp đầy đủ các hàm MATLAB ở dạng tệp "m" (m-file) dùng để mở rộng môi trường MATLAB cho việc giải quyết các loại vấn đề cụ thể. Các ví dụ về phạm vi ứng dụng của các hộp công cụ MATLAB là xử lý tín hiệu, hệ thống điều khiển, mạng nơ-ron, fuzzy logic, wavelet, mô phỏng, và nhiều ứng dụng khác.2 Khởi động và Thoát khỏi MATLAB Để khởi động MATLAB từ Windows, nhắp đúp (double-click) vào biểu tượng MATLAB trên màn hình desktop của windows. Sau khi khởi động xong màn hình sẽ hiện ra cửa sổ Môi trường Làm việc của MATLAB gồm 3 phần chính là: Thư mục Hiện thời (Current Directory), cửa sổ Lịch sử Câu lệnh (Command History) và Cửa sổ Câu lệnh (Command Windows) như ở Hình 1.
Làm việc với MATLAB Desktop 3 Hình 1.1: Môi trường làm việc của MATLAB Để kết thúc MATLAB có thể thực hiện bằng cách nhắp phím chuột trái vào ô đóng cửa sổ hình dấu sao ( ) phía trên và bên tay trái cửa sổ MAT- LAB. Ngoài ra cũng có thể kết thúc MATLAB bằng cách nhập vào câu lệnh » quit ở cửa sổ Command Windows rồi bấm Enter.3 Làm việc với MATLAB Desktop MATLAB Desktop bao gồm một Thanh Công cụ (Tool Bar) với các menu File, Edit, Debug, Desktop, Windows và Help. Bên cạnh Thanh Công cụ là một menu kéo xuống (Pull-down Menu) cho phép xem và thay đổi thư mục làm việc hiện thời. Nội dung của thư mục làm việc hiện thời được hiển thị ở cửa sổ Current Menu.
Phía dưới của sổ Current Menu là cửa sổ Command History hiển thị các câu lệnh MATLAB đã được nhập trước đó. Tiếp theo cửa sổ Command History xuống phía dưới có phím , cho phép truy nhập nhanh đến các thư viện của MATLAB, Simulink và các cài đặt Desktop Tools hay là các lựa chọn Preferences. Cửa sổ to nhất trong MATLAB Desktop là cửa sổ câu lệnh Command Window dùng để nhập các câu lệnh MATLAB hay chạy các chương trình cho trước. Giới thiệu Matlab 1.4 Các lệnh MATLAB cơ bản Các câu lệnh của MATLAB gần giống với các câu lệnh Unix.
Một số câu lệnh cơ bản của MATLAB được tóm tắt lại dưới đây: » ls Liệt kê nội dung của thư mục làm việc hiện thời. Cũng có thể dùng câu lệnh dir thay cho câu lệnh ls. temp liệt kê thư mục con temp bên trong thư mục làm việc hiện thời của MATLAB. » pwd Hiển thị đường dẫn của thư mục hiện tại.
Ví dụ: » pwd ans = C:\MATLAB701\work chỉ ra đường dẫn của thư mục làm việc hiện tại là C:\MATLAB701\work » who chỉ ra các biến đang được lưu ở bộ nhớ. Ví dụ: » a=1 a = 1 » b=2 b = 2 » who Your variables are: a b liệt kê hai biến a và b đang được lưu trữ ở bộ nhớ chương trình. Các ký hiệu đặc biệt 5 » clear [tên biến] xóa biến có tên được khai báo khỏi bộ nhớ. Ví dụ: » clear a » who Your variables are: b Để xóa hết tất cả các biến đang được lưu tại bộ nhớ, sử dụng lệnh »clear all »clc lệnh xóa toàn bộ thông tin trên Command Windows và đưa con trỏ trở về vị trí ban đầu.5 Các ký hiệu đặc biệt ( ) dấu ngoặc tròn được sử dụng để chỉ ra thứ tự ưu tiên trong các biểu thức số học hoặc bao quanh đối số của một hàm số.
Dấu ngoặc đơn cũng được dùng để bao quanh chỉ số phần tử trong một vector hay ma trận. Ngoài ra, dấu ngoặc đơn này còn được sử dụng để bao quanh các chỉ số dưới (subscript) logic. Ví dụ: A(2) chỉ ra phần tử thứ 2 của A. A([1 2 3]) liệt kê các phần tử thứ nhất, hai và ba của A.5) liệt kê các phần tử của A lớn hơn 0.
Giới thiệu Matlab A = 2 6 3 1 2 3 định nghĩa một ma trận với sáu phần tử cho trước. { } dấu ngoặc móc được sử dụng để tạo ra các mảng tế bào (cell array). Bộ dấu ngoặc móc này tương tự như bộ ngoặc vuông ngoại trừ các cấp độ nesting được bảo toàn. ′ biểu diễn phép toán chuyển vị liên hợp phức của một ma trận.
Ví dụ, A′ là ma trận chuyển vị liên hợp phức của A còn A.′ là ma trận chuyển vị của A. dấu chấm biểu diễn phân cách giữa phần nguyên và phần thập phân của một số thập phân. ; dấu chấm phảy dùng để ngăn cách các hàng khi khai báo ma trận, hoặc ngăn không hiển thị kết quả một phép toán trên màn hình. % dấu phần trăm dùng để tạo chú thích.
Tất cả các câu lệnh viết sau dấu phần trăm này đều bị bỏ qua. dấu 3 chấm dùng để nối hai phần của một câu lênh trên 2 dòng với nhau. Một câu lệnh dài có thể viết trên 2 dòng cho tiên theo dõi. Khi đó, dấu 3 chấm được sử dụng để nối 2 dòng với nhau.
Tài liệu tham khảo [1] Getting started with Matlab. The Mathworks Inc. Breiner, Matlab for Engineers. Chương 2 Tính toán và Lập trình sử dụng Matlab 2.1 Các phép tính số học Bốn phép tính số học cơ bản gồm cộng, trừ, nhân, chia được thể hiện tương ứng bằng các ký hiệu +, −, ∗, /.
Ví dụ » 2 + 1 ans= 3 » 3 − 1 ans= 2 » 2 ∗ 3 ans= 6 » 6/3 ans= 2 Với các phép tính phức tạp hơn có dấu ngoặc thì dấu ngoặc đơn (gồm cả mở và đóng) được sử dụng để phân cách thứ tự ưu tiên. Ví dụ, phép tính [(2 + 3) − (15 − 3)][7 + 5 − 4] (2.1) 2 được biểu diễn trong Matlab như sau 7 8 Chương 2. Tính toán và Lập trình sử dụng Matlab » ((2+3)-(15-3))*(7+5-4)/2 trong đó dấu ngoặc đơn được sử dụng thay cho dấu ngoặc vuông đã được mặc định dùng cho vector và ma trận trong Matlab. Trong Matlab phép tính lấy mũ được biểu diễn bởi ký hiệu bởi dấu mũ ˆ như: » 5ˆ 2 ans= 25 2.2 Các toán tử so sánh Trong Matlab các toán tử so sánh được biểu diễn như sau: nhỏ hơn (<), lớn hơn (>), nhỏ hơn hoặc bằng (<=), lớn hơn hoặc bằng (>=), bằng (trùng) nhau (==), khác nhau (∼=).
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 việc 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 ∼= thực hiện so sánh cả phần thực và phần ảo của hai toán hạng. Kết quả của phép toán so sánh cho ta 1 nếu phép so sánh là TRUE và ngược lại 0 nếu FALSE.
Một số ví dụ về toán tử so sánh được trình bày ở dưới đây » 1==2 ans = 0 » 3 > 1 ans = 1 » 4 <= 10 ans = 1 » 3 ∼= 7 ans = 1 2. Các toán tử so sánh 9 Trong trường hợp so sánh 2 vector hay 2 ma trận với nhau thì toán sử so sánh thực hiện và cho ta kết quả so sánh của từng phần tử tương ứng ở 2 vector hay 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 10 Chương 2. Tính toán và Lập trình sử dụng Matlab 1 1 0 » A < B ans = 1 0 0 1 0 0 0 0 1 2.3 Các toán tử logic Các ký hiệu &, |, và ∼ được sử dụng để biểu diễn toán tử logic AND, OR, và NOT.
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 một mảng logic với các phần tử 0 (FALSE) hoặc 1 (TRUE). 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). Hàm HOẶC tuyện đối được biểu diễn như sau xor(A, B).
Trình tự ưu tiên của các 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 .