Chương 1
Cơ sở Matlab
1.1 Tổng quan về Matlab
1.1.1 Khái niệm về Matlab
Matlab là một ngôn ngữ lập trình thực hành bậc cao được sử dụng để giải các bài
toán về kỹ thuật.Matlab tích hợp được việc tính toán, thể hiện kết quả, cho phép lập trình,
giao diện làm việc rất dễ dàng cho người sử dụng. Dữ liệu cùng với thư viện được lập
trình sẵn cho phép người sử dụng có thể có được những ứng dụng sau đây.
• Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thông thường
• Cho phép lập trình tạo ra những ứng dụng mới.
• Cho phép mô phỏng các mô hình thực tế.
• Phân tích, khảo sát và hiển thị dữ liệu.
• Với phần mềm đồ hoạ cực mạnh
• Cho phép phát triển,giao tiếp với một số phần mềm khác như C++, Fortran.
1.1.2 Tổng quan về cấu trúc dữ liệu của MATLAB, các ứng dụng
Matlab là một hệ thống tương giao,các phần tử dữ liệu là một mảng( mảng này
không đòi hỏi về kích thước ). Chúng cho phép giải quyết các vấn đề liên quan đến lập
trình bằng máy tính,đặc biệt sử dụng các phép tính về ma trận hay véc tor và có thể sử
dụng ngôn ngữ C học Fortran lập trình rồi thực hiện ứng dụng lập trình đó bằng các câu
lệnh goị từ MATLAB .MATLAB được viết tắt từ chữ matrix laboratory tức là
thư viện về ma trận, từ đó phần mềm MATLAB được viết nhằm cung cấp cho việc truy
cập vào phần mềm ma trận một cáh dễ dàng, phần mềm ma trận này được phát triển bởi
các công trình Linpack và Eispack . Ngày nay MATLAB được phát triển bởi
Lapack và Artpack tạo nên một nghệ thuật phần mềm cho ma trận.
 
              
            
                
                
                
                
            
 
                                            
                                
            
                       
            
                 138 trang
138 trang | 
Chia sẻ: thanhthanh29 | Lượt xem: 636 | Lượt tải: 0 
                        
            Bạn đang xem trước 20 trang mẫu tài liệu Tự học Matlab, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Pikachu – Vietdown.org 
Ch−ơng 1 
Cơ sở Matlab 
1.1 Tổng quan về Matlab 
1.1.1 Khái niệm về Matlab 
 Matlab lμ một ngôn ngữ lập trình thực hμnh bậc cao đ−ợc sử dụng để giải các bμi 
toán về kỹ thuật.Matlab tích hợp đ−ợc việc tính toán, thể hiện kết quả, cho phép lập trình, 
giao diện lμm việc rất dễ dμng cho ng−ời sử dụng. Dữ liệu cùng với th− viện đ−ợc lập 
trình sẵn cho phép ng−ời sử dụng có thể có đ−ợc những ứng dụng sau đây. 
• Sử dụng các hμm có sẵn trong th− viện, các phép tính toán học thông th−ờng 
• Cho phép lập trình tạo ra những ứng dụng mới. 
• Cho phép mô phỏng các mô hình thực tế. 
• Phân tích, khảo sát vμ hiển thị dữ liệu. 
• Với phần mềm đồ hoạ cực mạnh 
• Cho phép phát triển,giao tiếp với một số phần mềm khác nh− C++, Fortran. 
1.1.2 Tổng quan về cấu trúc dữ liệu của MATLAB, các ứng dụng 
 Matlab lμ một hệ thống t−ơng giao,các phần tử dữ liệu lμ một mảng( mảng nμy 
không đòi hỏi về kích th−ớc ). Chúng cho phép giải quyết các vấn đề liên quan đến lập 
trình bằng máy tính,đặc biệt sử dụng các phép tính về ma trận hay véc tor vμ có thể sử 
dụng ngôn ngữ C học Fortran lập trình rồi thực hiện ứng dụng lập trình đó bằng các câu 
lệnh goị từ MATLAB .MATLAB đ−ợc viết tắt từ chữ matrix laboratory tức lμ 
th− viện về ma trận, từ đó phần mềm MATLAB đ−ợc viết nhằm cung cấp cho việc truy 
cập vμo phần mềm ma trận một cáh dễ dμng, phần mềm ma trận nμy đ−ợc phát triển bởi 
các công trình Linpack vμ Eispack . Ngμy nay MATLAB đ−ợc phát triển bởi 
Lapack vμ Artpack tạo nên một nghệ thuật phần mềm cho ma trận. 
a.Dữ liệu 
Dữ liệu của MATLAB thể hiện d−ới dạng ma trận( hoặc mảng –tổng quát), vμ có các kiểu 
dữ liệu đ−ợc liệt kê sau đây 
• Kiểu đơn single , kiểu nμy có lợi về bộ nhớ dữ liệu vì nó đòi hỏi ít byte nhớ hơn, 
kiểu dữ liệu nμy không đ−ợc sử dụng trong các phép tính toán học, độ chính xác 
kém hơn 
• Kiểu double kiểu nμy lμ kiểu thông dụng nhất của các biến trong MATLAB 
• Kiểu Sparse. 
• Kiểu int8, uint8, int16 . . . 
Trang 1 
• Kiểu char ví dụ ‘Hello’ 
• Kiểu cell. 
• Kiểu Structure. 
Trong MATLAB kiểu dữ liệu double lμ kiểu mặc định sử dụng trong các phép tính số 
học. Các bạn có thể tham khảo các kiểu dữ liệu khác trong đĩa CD Help MATLAB 6.0 
b. ứng dụng 
MATLAB tạo điều kiện thuận lợi cho: 
• Các khoá học về toán học 
• Các kỹ s−, các nhμ nghiên cứu khoa học 
• Dùng MATLAB để tính toán ,nghiên cứu tạo ra các sản phẩm tốt nhất trong sản 
xuất. 
c.Toolbox lμ một công cụ quan trọng trong Matlab 
Công cụ nμy đ−ợc MATLAB cung cấp cho phép bạn ứng dụng các kỹ thuật để phân tích, 
thiết kế , mô phỏng các mô hình . 
Ta có thể tìm thấy toolbox ở trong mô tr−ờng lμm việc của . 
• Mạng nơron 
• Logic mờ 
• Simulink 
1.1.3 Hệ thống MATLAB 
Hệ thống giao diện của MATLAB đ−ợc chia thμnh 5 phần 
• Môi tr−ờng phát triển. 
Đây lμ nơi đặt các thanh công cụ, các ph−ơng tiện giúp chúng ta sử dụng các lệnh vμ các 
file, ta có thể liệt kê một số nh− sau. 
 + Desktop 
 + Command Window 
 + Command History 
 + Browsers for viewinghelp 
• Th− viện, các hμm toán học 
 Bao gồm các cấu trúc nh− tính tổng, sin cosin atan, atan2 etc.., các phép tính 
đơn giản đến các phép tính phức tạp nh− tính ma trận nghich đảo, trị riêng, chuyển 
đổi furier ,laplace , symbolic library 
• Ngôn ngữ MATLAB 
 Đó lμ các ngôn ngữ cao về ma trận vμ mảng, với các dòng lệnh, các hμm, cấu 
trúc dữ liệu vμo , có thể lập trình h−ớng đối t−ợng. 
• Đồ hoạ trong MATLAB 
Trang 2 
 Bao gồm các câu lệnh thể hiện đồ hạo trong môi tr−ờng 2D vμ 3D, tạo các hình 
ảnh chuyển động, cung cấp các giao diện t−ơng tác giữa ng−ời sử dụng vμ máy tính . 
• Giao tiếp với các ngôn ngữ khác. 
 MATLAB cho phép t−ơng tác với các ngôn ngữ khác nh− C , Fortran 
1.1.4 Lμm quen với matlab 
 Tr−ớc tiên để khởi động MATLAB bạn kích đúp (hoặc đơn) vμ biểu t−ợng 
file MATLAB.exe ,trên mμn hình xuất hiện cửa sổ sau.( Xem hình vẽ 1.1 ) 
Cửa sổ đó chứa các thanh công cụ( giao diện ng−ời vμ máy) cần thiết cho 
việc quản lý các files, các biến ,cửa sổ lệnh, có thể coi desktop lμ các panel 
gồm các ô, vùng, quản lý vμ tác dụng của từng cửa sổ nhỏ đ−ợc quản lý bởi 
desktop 
 Hình vẽ 1.1 
Trang 3 
Trên hình vẽ ta thấy cửa sổ desktop(cửa sổ lớn nhất), vμ các cửa sổ phụ của 
nó 
1.1.5 Lμm việc với các cửa sổ của MATLAB đ−ợc quản lý bởi desktop 
a. Cửa sổ Command window : 
 Lμ cửa sổ giao tiếp chính của Matlab bởi đây lμ nơi nhập giá trị các biến, 
hiển thị giá trị,tính toán giá trị của biểu thức, thực thi các hμm có sẵn trong 
th− viện (dạng lệnh), hoặc các hμm(dạng function) do ng−ời dùng lập trình ra 
trong M-files. 
 Các lệnh đ−ợc đ−ợc nhập sau dấu nhắc ‘ >> ‘, vμ nếu có sai sót trong quá 
trình gõ(nhập) lệnh thì hãy nhấn phím Enter cho đến khi nhận đ−ợc dấu nhắc 
>>. Thực thi lệnh bằng nhấn phím Enter. 
Gõ các lệnh sau: 
>> A= pi/2 ; 
>> B= sin(A) 
 B= 
 1 
Hoặc ch−ơng trình soạn thảo trong M-file d−ới đây: 
% Chuong trinh trong M-file
x= 0:pi/6:2*pi; 
y=sin(x); 
plot(x,y); 
% chuong trinh đ−ợc l−u với tên file lμ 
ve_sin.m 
thực thi ch−ơng trình trên trong cửa sổ Command window bằng dòng lệnh 
sau 
>> ve_sin 
Chúng ta thấy rõ hơn trong mục “ Sử dụng lệnh trực tiếp “ ở phần sau. 
b. Cửa sổ command History 
 Các dòng mμ bạn nhập vμo trong cửa sổ Command window ( các dòng nμy có thể lμ 
dòng nhập biến ,hoặc có thể lμ dòng lệnh thực hiện hμm nμo đó ) đ−ợc giữ lại trong cửa sổ 
Command History ,vμ cửa sổ nμy cho phép ta sử dụng lại những lệnh đó bằng cách kích 
Trang 4 
đôi chuột lên các lệnh đó hoặc các biến, nếu nh− bạn muốn sử dụng lại biến đó. Xem 
hình 1.2 
Kích đôi 
chuột lên 
lênh hoặc 
biến để sử 
dụng lại 
 Hình 1.2 
c. Cửa sổ Workspace: 
 Lμ cửa sổ thể hiện tên các biến bạn sử dụng cùng với kích th−ơc vùng nhớ(số bytes), 
kiểu dữ liệu(lớp) ,các biến đ−ợc giải phóng sau mỗi lần tắt ch−ơng trình.(xem hình 1.3) 
Yêu 
Kích đôi 
chuột lên 
biến để 
xem dữ 
liệu(hoặc 
thay đổi 
giá trị) 
Hình 1.3 
Ngoμi ra nó cho phép thay đổi giá tri , cũng nh− kích th−ớc của biến bằng cách kích đôi 
chuột lên các biến. Hoặc kích vμo nút bên trái ngay cạnh nút save 
Ví dụ khi chọn biến(giả thử lμ biến b) rồi kích đúp(hoặc kích chuột vμo nút cạnh nút save) 
ta đ−ơc cửa sổ sau gọi lμ Array Editor: xem hình 1.4 
Trang 5 
Tiêu đề lμ tên biến b , định dạng dữ liệu ở ô có tên lμ: Numeric format, mặc định lμ dạng 
short, Kích th−ớc size lμ 1 by 3 (tức lμ một hμng vμ 3 cột) ta có thể thay đổi kích th−ớc 
nμy bằng cách thay đổi số có trong ô kích th−ớc size. 
+ Dùng cửa sổ nμy để l−u các biến 
ở d−ới lμ dữ liệu của biến b, ta có thể thay đổi chúng bằng cách thay đổi giá 
trị trong các ô đó 
 Hình 1.4 
Ví dụ 
Nhập biến >>b=[1 2 3 ]; 
 >>x=pi; 
Tất cả các biến đều đ−ợc l−u trong Workspace trong đó thể hiện cả kích th−ớc (Size), số 
Bytes vμ kiểu dữ liệu(class) (8 bytes cho mỗi phần tử dữ liệu kiểu double cụ thể lμ 24 
bytes dμnh cho b vμ 8 bytes dμnh cho a) 
d. Cửa sổ M-file 
 Lμ một cửa sổ dùng để soạn thảo ch−ơng trình ứng dụng, để thực thi ch−ơng trình viết 
trong M-file bằng cách gõ tên của file chứa ch−ơng trình đó trong cửa sổ 
Commandwindow. 
 Khi một ch−ơng trình viết trong M-file, thì tuỳ theo ứng dụng cụ thể, tuỳ theo ng−ời 
lập trình mμ ch−ơng trình có thể viết d−ới dạng sau 
+Dạng Script file :Tức lμ ch−ơng trình gồm tập hợp các câu lệnh viết d−ới dạng liệt kê 
,không có biến dữ liệu vμo vμ biến lấy giá trị ra 
+Dạng hμm function có biến dữ liệu vμo vμ biến ra. 
e. Đ−ờng dẫn th− mục: Nơi l−u giữ các file ch−ơng trình 
1.2 Nhập biến,lệnh trực tiếp từ cửa sổ Command Window: 
 Sau khi xuất hiện dấu nhắc >> trong cửa sổ command window điều đó đồng nghĩa cho 
phép bạn nhập biến hoặc thực hiện các câu lệnh mong muốn. 
Trang 6 
Do dữ liệu của MATLAB đ−ợc thể hiện d−ới dạng matrận cho nên các biến dùng trong 
MATLAB dữ liệu của nó cũng thể hiện d−ới dạng ma trận, việc đặt tên biến không đ−ợc 
đặt một cáh tuỳ tiện mμ phải đặt theo một quy định 
• Tên ma trận(biến) phải bắt đầu bằng một chữ cái, vμ có thể chứa đến 19 ký tự lμ số 
hoặc chữ. 
• Bên phải dấu bằng lμ các giá trị của ma trận 
• Dấu chấm phẩy(; )lμ để phân cách các hμng, còn các giá trị trong hμng đ−ợc phân 
cách nhau bởi dấu phẩy(,) hoặc dấu cách( phím space). 
• Kết thúc nhập ma trận th−ờng có dấu chấm phẩy hoặc không tuỳ theo bạn muốn 
thể hiện kết quả của nó hay không. 
a. Nhập các biến, matrận, các lệnh liệt kê trực tiếp 
Thông th−ờng Matlab sử dụng 4 vị trí sau dấu phẩy cho các số thập phân có dấu phẩy 
chấm động, vμ sử dụng biến “ ans “ cho kết quả của phép tính. Ta có thể đăng ký biến thể 
hiện kết quả nμy của riêng mình . Xét tập các lệnh sau: 
Ví dụ tr−ờng hợp không sử dụng biến l−u kết quả, biến ans tự động đ−ợc gán 
>> 8+9 
ans = 
 17 
Nhập biến r = 8/10 trong cửa sổ CommandWindow nh− sau: 
>> r = 8/10 
r=0.8000 
Bạn có thể sử dụng các biến nμy cho các phép tính tiếp theo ví dụ nh−: 
>> s=10*r 
s= 
 8 
Ví dụ nhập trực tiếp các số liệu nh− sau 
 >> a=[1 2;3 4] 
 a = 
 1 2 
 3 4 
Matlab có hμng trăm hμm đ−ợc định nghĩa sẵn ví dụ nh− hμm tính sin .. . 
>> x=pi; %nhập biến x 
>> sin(x) % nhập lệnh sin(x), ấn enter để thực hiện lệnh tính sin(x) 
ans = 
 1.2246e-016 
+ Các phép tính sử dụng trong Matlab : 
Trang 7 
Trong MATLAB cũng sử dụng các phép toán thông th−ờng đ−ợc liệt kê trong bảngsau 
Ký tự ý nghĩa Lệnh Matlab 
 + Cộng a + b a+b 
 - Trừ a - b a-b 
 * Nhân ab a*b 
 / Chia phải 
a/b=
b
a
a/b 
 \ Chia trái 
b\a =
b
a
b/a 
 ^ Mũ a^b a^2 
Thứ tự −u tiên các phép toán: 
Tất cả các biểu thức toán học đều đ−ợc thực hiện từ trái qua phải, ta có bảng thứ tự −u tiên 
nh− sau: 
Thứ tự −u tiên Các phép 
1 Dấu ngoặc trong biểu thức 
2 Toán tử mũ ^ , thực thi từ trái qua phải 
3 Toán tử nhân, chia có cùng mức −u 
tiên,thực hiện từ trái sang phải . 
4 Cộng , trừ 
Ví dụ1 : 
>> a=[1 2;3 4]; 
>> b=[5 6;7 8]; 
>> a+b^2 
ans = 
 68 80 
 94 110 
Ví dụ2 Giải ph−ơng trình bậc hai, các lệnh nhập trong của sổ CommandWindow 
>>a= 1; 
>>b=-2; 
>>c=1; 
>>delta= b^2- 4*a*c; 
>>x1=(-b+ sqrt(delta) )/(4*a); 
>>x2=(-b- sqrt(delta) )/(4*a); 
Trang 8 
Chú ý : + Các lệnh đ−ợc kết thúc bằng dấu chấm phẩy, Matlab sẽ không thể hiện kết quả 
trên mμn hình, ng−ợc lại không có dấu chấm phẩy Matlab sẽ thể hiện kết quả. 
 + Trong quá trình nhập ma trận nếu các phần tử trên một hμng dμi quá ta có thể 
xuống dòng bằng toán tử ba chấm( . . . ) 
Ví dụ 
>>Number_apples=10;Number_Oranges=25,Number_bananas=34; 
>>Fruit_Purchased= Number_apples+ Number_Oranges+ ... 
Number_bananas 
1.3 Sử dụng các lệnh gián tiếp từ các file dữ liệu 
 Nh− đã trình bμy trong phần cửa sổ M-file, tập hợp các lệnh của MATLAB đ−ợc 
soạn thảo trong cửa sổ M-file d−ới dạng Script file hoặc dạng hμm function(có biến đầu 
vμo vμ ra), vμ đ−ợc ghi (l−u)vμo file dữ liệu có phần mở rộng lμ .m (Thông th−ờng các 
ch−ơng trình soạn thảo trong M-file th−ờng đ−ợc l−u theo đ−ờng dẫn C:\matlab\ 
work\Tên_file ), muốn thực thi ch−ơng trình soạn thảo đó ta gọi lệnh trong cửa sổ 
Commandwindow, tuỳ theo ch−ơng trình viết dạng Script file hay function mμ trong cửa 
sổ ta có 2 cách gọi nh− sau: 
• Đối với ch−ơng trình viết dạng Script file 
>> tên_file ; 
a=1; 
b=-2; 
c=1; 
delta=b^2-4*a*c; 
x1=(-b+sqrt(delta))/(2*a) 
x2=(-b-sqrt(delta))/(2*a) 
% l−u vμo file GPTB2.m
Ví dụ giải ph−ơng trình bậc hai tìm nghiệm x1 vμ x2 viết trong M-file dạng Scriptfile: 
Thực thi ch−ơng trình trên trong cửa sổ CommandWindow bằng lệnh 
>>GPTB2 
• Đối với ch−ơng trình viết dạng function ,có tham số đầu vμo vμ ra,ta phải truyền 
đủ các tham số cần thiết. 
Ví dụ : Giải ph−ơng trình bậc hai với ba tham số đầu vμo lμ các hệ số a , b, c vμ hai 
biến đầu ra lμ nghiệm của ph−ơng trình x1 vμ x2 
(Xem cách viết hμm function ở mục sau) 
Trang 9 
function [x1, x2] 
=GPTB2(a,b,c) 
x1=(-b+sqrt(delta))/(2*a); 
%Tinh nghiem x1 
 x2=(-b-
sqrt(delta))/(2*a); 
%Tinh nghiem x2
Thực hiện bμi toán trên trong Command window nh− sau: 
>>[x1,x2]=GPTB2 (a,b,c) % cấu trúc chung lμ [x1,x2]=Tên_file (a,b,c) 
( hoặc [x1,x2]=GPTB2(1,-2,1) ) 
>>a= 1; 
>>b=-2; 
>>c=1; 
L−u ý rằng khi viết ch−ơng trình trong M-file, bạn muốn ghi chú thích ta dùng ký 
tự % đặt tr−ớc dòng chú thích nh− sau 
%----------dòng chú thích -------------- 
%Viết trong M-file(dạng Script file) 
x=0:0.1:10 ; %Tạo vector x 
y=cos(x); 
plot(x,y); % Vẽ đồ thị hμm cosin 
%l−u vμo file có tên lμ dai1.m 
Ví dụ 2 
Thực thi hμm trên cửa sổ commandwindow bằng lệnh 
>> dai1 
Viết ch−ơng trình trong M-file đ−ợc dùng lμ chủ yếu ,đặc biệt đối với những ch−ơng trình 
dμi , phức tạp thì bạn nên viết trong M-file. 
1.4 Dòng nhắc gán giá trị biên 
 Đối với bạn đã học lập trình Pascal, bạn muốn nhập giá trị khi thực thi ch−ơng 
trình bạn dùng cặp lệnh: 
writeln( 'Nhập giá trị của a='); 
readln(a); 
Nh−ng đối với MATLAB thì bạn sẽ thấy rất đơn giản chỉ dùng một lệnh duy nhất đó lμ : 
a=input(‘Nhap gia tri cua a=’); 
Ví dụ: Trong cửa sổ Commandwindow ta gõ lệnh 
>> a =input(‘nhap a=’); 
Trang 10 
Nhấn Enter cho kết quả d−ới dạng 
 nhap a= 3; đồng nghĩa với việc gán a=3. 
Sử dụng dòng nhắc gán giá trị biên trong tr−ờng hợp ta muốn thay đổi giá trị các biến lúc 
thực thi ch−ơng trình. 
Ví dụ : sử dụng dòng nhắc gán giá trị biên để giải ph−ơng trình bậc hai 
% Ch−ơng trình viết trong M-file, bạn có thể viết trong 
CommandWindow 
a=input(‘nhap he so a=’); 
b=input(‘nhap he so b=’); 
c=input(‘nhap he so c-=’); 
Delta=b^2-4*a*c; 
x1=(-b+ sqrt(Delta))/(2*a) 
x2=(-b+ sqrt(Delta))/(2*a) 
1.5 Cách tạo một hμm function 
 Tr−ớc hết ta thống nhất rằng, để tạo một hμm function ta phải soạn thảo nó trong M-
file. Cấu trúc hμm nh− sau: 
 câu lệnh 2; 
 câu lệnh 3; 
 .... 
 câu lệnh n; 
 %kết thúc ch−ơng trình khi kết thúc câu lệnh 
%Khai báo hμm có từ khoá function 
function[danh sách tên kết quả]= Tên_hμm(danh sách các biến đầu vμo) 
% Thân ch−ơng trình 
 câu lệnh 1; 
Chú ý: 
• Danh sách tên kết quả, vμ tham số đầu vμo đ−ợc cách nhau bằng dấu phẩy. 
 Ví dụ : function[x1,x2,x3]=dai2(a,b,c,d) 
• Thân ch−ơng trình không bắt đầu bằng từ khoá Begin vμ không kết thúc bằng từ 
khoá End nh− Ngôn ngữ lập trình Pascal. 
• Ta nên l−u vμo file có tên trùng với tên hμm 
Ví dụ: Cho sơ đồ khối của hệ thống điều khiển tự động nh− hình d−ới đây 
2
2
den
num
1
1
den
num
 yu 
(-
Trang 11 
Nhiệm vụ: Tính hμm truyền kín của hệ thống 
Ch−ơng trình có thể đ−ợc viết nh− sau: 
function[numk, denk]=ham_truyen(num1, den1, num2, den2) 
numh=conv(num1, num2);% conv lμ hμm nhân, hμm nμy đ−ợc định nghĩa sẵn 
denh=conv(den1,den2); 
numk=numh; 
m=length(denh)- length(numh); 
numh1=[zeros(:,m), numh]; 
denk= numh1+denh; 
%kết thúc ch−ơng trình tại đây bạn nên l−u vμo file có tên lμ ham_truyen. 
Thực thi hμm: 
>> num1=[1 1]; 
>>den1=[1 2 1]; 
>>num2=[1 2]; 
>>den2=[1 2 1 4]; 
>>[numk,denk]=ham_truyen(num1,den1,num2,den2); 
1.6 Sử dụng hμm có sẵn 
Có rất nhiều hμm có sẵn, đó lμ các hμm đã đ−ợc lập trình sẵn,vμ đ−ợc đ−a vμo th− viện, để 
xem một hμm cũng nh− cấu trúc, cách sử dụng ta dùng lệnh >>help tên_hμm 
Ví dụ Ta muốn xem cấu trúc hμm ode23 
>>help ode23 
1.7 Vẽ các hμm 
Dùng lệnh fplot để vẽ các hμm, hμm nμy có thể có sẵn(ví dụ nh− sin, cos . . .), hoặc các 
hμm tạo bởi ng−ời dùng viết trong M-file dạng function 
Cấu trúc: 
 fplot(‘Tên_hμm’,[Xmin ,Xmax] 
,tol,N,’LineSpec’);hoặc 
 fplot( @Tên_hμm,[Xmin ,Xmax] 
,tol,N,’LineSpec’); 
 L−u ý:Đối với các hμm toán học có sẵn(không phải định nghĩa) ví dụ nh− sin, cos ,... thì 
có thể thực hiện nh− sau: 
 + fplot(‘sin(x)’,2*pi*[-1 1] ) %vẽ y=sin(x) với x=[-2*pi 2*pi]; 
 + fplot([sin(x),tan(x),cos(x)]’, 2*pi*[-1 1] ); 
Trang 12 
 %vẽ ba đồ thị trên cùng một cửa sổ với x=[-2*pi 2*pi] ; 
• Dùng hμm inline ví dụ : f=inline(‘x+2’); fplot(f,[0 2] ); 
• Đối với các hμm trong M-file có thể sử dụng các cách sau 
Ví dụ: Tính f1, f2, f3 
Hμm FUNC sẽ trả về một vector hμng ứng với mỗi giá trị của x, ví dụ x=[x1;x2] thì hμm 
FUNC sẽ trả về ma trận sau đây. 
 f1(x1) ,f2(x1), f3(x1) 
 f1(x2) ,f2(x2), f3(x2) 
Lợi dụng đặc điểm nμy ta có thể vẽ nhiều đồ thị trên cùng một cửa sổ thông qua ví 
dụ sau: 
 f1= x+3; 
 f2=x; 
 f3=x.^2; 
 %l−u vμo file FUNC.m 
 %Tạo hμm Y 
 function Y=myfun(x) 
 Y(:,1)=200*sin(x(:))./(x(:); 
 Y(:,2)=x(:).^2; 
 %l−u vμo file có tên lμ 
myfun.m 
function [f1,f2,f3]= FUNC(x) 
Thực thi ch−ơng trình trên trong Commandwindow 
>>fplot( ‘myfun’,[-20 20] ); 
(hoặc dùng >>fplot(@myfun ,[-20 20] ) 
Các thông số tol, N , LineSpec lần lựot lμ sai số liên quan(t−ơng đối), số điểm ít nhất, biểu 
diễn thuộc tính của đ−ờng. 
Chú ý:Khi bạn muốn hạn chế khoảng biểu diễn cả trục x vμ y thì dùng [Xmin 
Xmax Ymin Ymax] . 
1.8 L−u vμ lấy dữ liệu 
 Với Matlab khi thoát khỏi ch−ơng trình(tắt),các biến dữ liệu(trongWorkspace) sẽ bị 
mất,do vậy khi thực hiện lại ch−ơng trình bạn phải khai báo lại các biến cần thiết trên, 
Trang 13 
điều nμy gây mất thời gian, vμ biện pháp tốt lμ bạn l−u tất cả các biến cần thiết cho 
ch−ơng trình của bạn vμo file riêng, vμ khi cần chúng ta gọi chúng ra bằng một lệnh 
L−u dữ liệu có thể lμ : 
• L−u tất cả các biến trong vùng lμm việc( Workspace) hoặc 
• Một số biến nhất định tuỳ theo nhu cầu . 
Sau đây lμ các cách l−u các biến dữ liệu: 
1.8.1 L−u vμ lấy dữ liệu d−ới file nhi phân(binary) 
L−u dữ liệu: 
>>save('C:\matlabR12\work\ten_file') %l−u toμn bộ biến trong Workspace 
>>save('C:\matlabR12\work\ten_file', 'x','y')% chỉ l−u biến x vμ y 
Chú ý: C:\matlabR12\work\ten_file lμ đ−ờng dẫn tới file, thông th−ờng khi cμi đặt ch−ơng 
trình thì mặc định lμ cμi vμo ổ C (nếu bạn cμi vμo ổ D, khi sử dụng lệnh save, bạn chỉ cần 
thay đổi thμnh :D:\matlabR12\work\ten_file) 
Ví dụ: 
Khôi phục lại dữ liệu dùng lệnh sau: 
 load ('C:\matlabR12\work\ten_file') % lấy dữ liệu 
Ví dụ: Bây giờ ta xoá hai biến a vμ b ra khỏi ch−ơng trình vμ thực hiện lệnh load để lấy lại 
dữ liệu: 
%Viết trong Command Window 
>>a=1; 
>>b=1; 
>>c=-2; 
>>save('C:\matlabR12\work\Bien', 'x','y') 
>>clear a ; %xoá biến a 
>>clear b ; %xoá biến b 
>> load ('C:\matlabR12\work\ten_file') 
>>a %kiểm tra xem a đã khôi phục lại 
ch−a 
a=1 
>>b%kiểm tra xem b đã khôi phục lại 
ch−a 
b=1 
1.8.2 L−u vμ lấy dữ liệu d−ới file ASCII 
>>save('C:\matlabR12\work\ten_file','-ASCII'). 
L−u toμn bộ biến trong workspace vμo file 
Trang 14 
>>save('C:\matlabR12\work\ten_file','x','y','-ASCII'). 
L−u hai biến x vμ y vμo file 
>>load ('C:\matlabR12\work\ten_file', '-ASCII '). 
khi thực hiện lệnh nμy thì trong Workspace sẽ xuất hiện biến có tên lμ tên của file , kích 
đúp chuột lên biến nμy sẽ xuất hiện dữ liệu của toμn bộ biến đ−ợc l−u giữ, việc truy nhập 
đến biến l−u giữ thông qua việc truy nhập kiểu Matrận 
Ví dụ Command window 
>>a=2; 
>>b=3; 
>>c=4; 
>>save('C:\matlabR12\work\ save')%l−u 3 biến trong file tên save 
>> load('C:\matlabR12\work\ save')%khôi phục dữ liệu 
hoặc 
>> save('C:\matlabR12\work\ save', 'a','b')%l−u hai biến a vμ b 
trong file %tên save 
T−ơng tự: 
>>a=3; 
>>b=4; 
>>save('C:\matlabR12\work\save','a','b','-ASCII') 
>>load('C:\matlabR12\work\save','-ASCII') %khôi phục dữ liệu 
Trong workspace sẽ có biến save nh− sau: 
Kích đúp vμo save sẽ xuất hiện dữ liệu của hai biến a vμ b 
Hoặc đơn giản để l−u biến bạn có thể chọn biến rồi kích vμo nút save trong cửa sổ 
Workspace 
1.9 Các toán tử logic vμ các lệnh điều kiện 
Trang 15 
1.9.1 Các toán tử quan hệ 
 Một biểu thức logic trong MATLAB có đ−ợc từ sự so sánh các đại l−ợng khác 
nhau(ví dụ hai đại l−ợng A vμ B). Những ký hiệu thể hiện sự so sánh đ−ợc gọi lμ các toán 
tử quan hệ , sau đây lμ liệt kê các toán tử 
Bảng liệt kê các toán tử quan hệ 
Toán tử quan hệ ý nghĩa 
 < Nhỏ hơn vd A<B 
 > Lớn hơn vd A>B 
 <= Nhỏ hơn hoặc bằng A<=B
 >= Lớn hơn hoặc bằng A>=B 
 == Bằng vd A==B 
 ~= Không bằng vd A~=B 
Các toán tử quan hệ thực hiện việc só sánh từng phần tử của mảng, chúng trả lại một 
mảng có cùng kích th−ớc với hai mảng trên( hai mảng ban đầu phải có cùng kích th−ớc 
nếu không sẽ gây ra lỗi),với các phần tử trong mảng lμ 0 hoặc 1 t−ơng ứng với các quan 
hệ so sánh lμ sai hay đúng 
Tr−ờng hợp đặc biệt so sánh hai số phức: 
+ Khi dùng các toán tử quan hệ lμ thì chỉ so sánh phần thực của nó mμ thôi . 
+ Khi dùng các toán tử quan hệ = thì so sánh cả phần thực lẫn phần ảo 
Khi so sánh hai chuỗi . 
Dùng toán tử strcmp 
Cấu trúc: 
strcmp( chuỗi1, chuỗi2) 
Ví dụ : 
>>Chuoi1= ‘Pham Duc Dai’; 
>>Chuoi2=’Vu van van’; 
>>ss=strcmp(Chuoi1, 
Chuoi2); 
ss=0 
Chú ý : Khi so sánh một số vô h−óng với một ma trận thì số đó đ−ợc nhân với một m trạn 
ones(size(ma trận so sánh)) sao cho nó có kích th−ớc giống với ma trận cần so sánh rồi 
mới so sánh . 
Ví dụ: 
X=5; X>=[1 2 3 ; 4 5 6; 7 8 9] Ù X=5*ones(3,3); X>[1 2 3 ; 4 5 6; 7 8 9] 
Kết quả trả về : 
ans= 
Trang 16 
 1 1 1 
 1 1 0 
 0 0 0 
1.9.2 Các toán tử logic 
(Logical Operator & | ~) 
Cấu trúc: 
Toán tử logic ý nghĩa 
 & Vμ vd A&B 
 | Hoặc vd A|B 
 ~ Đảo vd ~A 
Các ký hiệu & , | ,~ lμ các toán tử logic vμ hoặc đảo. Chúng thực hiện trên từng phần tử 
của của các mảng so sánh( toán tử logic cho phép thực hiện trên nhiều mảng với yêu cầu 
lμ các mảng phải có cùng kích th−ớc), kết quả trả về lμ một ma trận có cùng kích th−ớc 
với các ma trạn so sánh trên. Các toán tử logic th−ờng dùng để liên kết các biểu thức quan 
hệ. 
Bảng chân lý: 
 Đầu vμo And Or Xor Not 
A B A&B A|B xor(A,B) ~A 
0 0 0 0 0 1 
0 1 0 1 1 1 
1 0 0 1 1 0 
1 1 1 1 0 0 
Mức −u tiên cao nhất đối với toán tử logic đảo( not ,~) , hai toán tử and vμ | có cùng mức 
−u tiên , trong một biểu thức toán học thì chúng đ−ợc thực hiện theo thứ tự từ trái sang 
phải. 
Ta có thể sử dụng các toán tử ‘and’ , ‘or’ ,’not’ ⇔ & , | , ~ nh− bảng sau: 
 A&B and(A,B) 
 A|B or(A,B) 
 ~A not(A) 
>>X=5; 
>>X >=[1 2 3 ; 4 5 6; 7 8 
9] 
ans 
1 1 1 
1 1 0 
0 0 0 
Trang 17 
Chú ý trong các biểu thức sử dụng các toán tử locgic thì ta nên dùng dấu ngoặc để xác 
định rõ rμng ,vμ đảm bảo tính t−ơng thích trong các phiên bản mới của Matlab 
Tổng kết: 
• Các phép tính số học sẽ đ−ợc thực hiện tr−ớc khi thực hiện các biểu thức logic. 
• Khi tính toán ta nên thêm dấu ngoặc đơn để lμm biểu thức trở nên sáng sủa hơn. 
• Gặp những biểu thức phức tạp sẽ sử lý các tính toán số học tr−ớc, sau đó các toán 
tử logic đ−ợc xem xét từ trái qua phải . 
1.10 Các câu lệnh điều kiện, rẽ nhánh 
1.10.1 Câu lệnh điều kiện if. 
Cấu trúc 
% Đây lμ cấu trúc đơn giản nhất. 
 if expression 
 Statements; 
 end; 
% Cấu trúc sử dụng lệnh elseif ,else vμ if đ−ợc viết liền 
 if expression1 
 Statements; 
 elseif expression2 
 Statement; 
 else 
 Statements; 
 end 
Biểu thức expression bao gồm các toán tử quan hệ ví dụ nh− (count<limit) hoặc (height-
offset)>0 ), Ngoμi ra nó còn kết hợp với các toán tử logic để liên kết các biểu thức quan 
hệ. 
Ví dụ 1: if (count0) 
function v= lnearspace(a,b,n) 
if n<2 
error(‘Ban nhap sai, it nhat n phai lon 
hon 1’); 
end; 
h=(b-a)/(n-1); 
v=a:h:b; 
Ví dụ 2: Cho khoảng [a b], viết ch−ơng trình chia khoảng nμy thμnh n khoảng bằng nhau 
với n 
cho 
tr−ớc. 
-------------------------------------------------------------------------- 
Thực thi ch−ơng trình trên trong Command window nh− sau: 
>> v=Soan1(5,1,5) 
v = 
Trang 18 
 5 4 3 2 1 
Ví dụ 3: Ch−ơng trình xác định dấu của số nhập vμo : 
function s= sign(x) 
if x>0 
s=1; % so duong 
elseif x<0 
s=-1; % so am 
else 
s=0; % so =0 
end; 
Nguyên tắc lμm việc của lệnh if nh− sau :Khi biểu thức expression đúng thì câu lệnh ngay 
sau lệnh if đ−ợc thực hiện nếu sai câu lệnh đó sẽ đ−ợc bỏ qua đến lệnh elseif 
Một biểu thức só sánh lμ đúng nếu tất cả các phần tử so sánh của hai mảng (hoặc hai ma 
trận) trả về gía trị 1 
Ví dụ: 
A=[ 1 0; 2 3]; B=[1 1; 3 4]; 
Thì : + A<B lμ sai vì A(1,1) không nhỏ hơn B(1,1); 
 + A<(B+1) lμ đúng bởi vì không phần tử nμo trong A lớn hơn phần tử trong B t−ơng 
ứng 
% Cấu trúc khi sử dụng lệnh else if 
 if expression1 
 statements1; 
 else 
 if expression2 
 statements2; 
 end 
 end 
Ta thấy trong cấu trúc trên thì có hai lệnh if riêng biệt cho nên phải có hai từ kết thúc lμ 
end. 
Bμi tập ví dụ: Nhập vμo bμn phím điểm của một học sinh rồi in ra đánh giá : 
Trang 19 
Diem= input(‘nhap diem vao=’); 
 if ( Diem< 5) 
 fprintf(‘Hoc luc yeu’); 
 elseif( Diem>=5)&(Diem<7) 
 fprintf(‘Hoc luc trung binh’);
1.10.2 Vòng lặp for 
Cấu trúc: 
 for i= imin :Δi: imax 
 statements; 
 end 
            File đính kèm:
 Tu_hoc_Matlab.pdf Tu_hoc_Matlab.pdf