Trong phần trước chỳng ta đó thấy MATLAB như là một mụi trường tớnh toỏn tương tỏc. Ngoài chức năng của một mụi trường tớnh toỏn tương tỏc, MATLAB cũn cho phộp xõy dựng cỏc chương trỡnh lập trỡnh như cỏc ngụn ngữ lập trỡnh thụng dụng với một kho dữ liệu cỏc hàm xõy dựng sẵn (built-in functions). Cỏc chương trỡnh MATLAB được lưu giữ với phần tờn tệp mở rộng .mvà thường được gọi là cỏc tệpm(m-file). Cú hai loại tệp :m
• Chương trỡnh (script): thực hiện một tập hợp cỏc cõu lệnh và làm việc với cỏc dữ liệu nằm ở khụng gian cụng tỏc (workspace). Cỏc chương trỡnh (script) khụng nhận đối số đầu vào và cũng khụng trả cỏc đối số đầu ra. • Hàm (function): thực hiện một tập hợp cỏc cõu lệnh chứa trong nú. Tuy nhiờn, cỏc function nhận cỏc đối số đầu vào và cho cỏc đối số đầu ra. Cỏc biến khai bao bờn trong function chỉ tồn tại trong function. Để xem hướng dẫn sử dụng cỏc function từCommand Windownhập vào help functionName. Vớ dụ, để xem cỏch sử dụng hàmorchỳng ta nhập vào ằhelp or
và nhận được hướng dẫn sau
| Logical OR. A | B is a matrix whose elements are 1’s where either A or B has a non-zero element, and 0’s where both have zero elements. A and B must have the same dimensions unless one is a scalar.
C = OR(A,B) is called for the syntax ’A | B’ when A or B is an object. See also XOR.
Để soạn thảo cỏc script hay cỏc function của MATLAB chỳng ta cú thể sử dụng bất kỳ một chương trỡnh soạn thảo văn bản nào rồi lưu lại với tờn mở rộng.m. Chỳng ta cũng cú thể sử dụng ngay chương trỡnh soạn thảo của MATLAB (MATLAB Editor). Để xem hay soạn thảo lại mộtm-filecú sẵn chỉ cần sử dụng cõu lệnh
ằ edit fileName
ằ edit khụng cần tờn tệp. •Tạo cỏc hàm MATLAB
Để tạo một function trong MATLAB chỳng ta cần tạo một script với dũng đầu tiờn cú cấu trỳc
function [Output1,..., OutputM]=functionName(Input1, ...,InputN) Trong đú{Input1,..., InputN}làNđối số vào và{Output1,..., OutputM} làMđối số ra. Tờn của hàmfunctionNamenhất thiết phải giống với tờn tệpm và khụng trựng với tờn cỏc tệp cú sẵn.
Vớ dụ sau đõy hướng dẫn cỏch viết một function để tớnh biệt thức∆ = a2−4accủa phương trỡnh bậc haiax2+bx+c= 0
function delta=discriminant(a,b,c)
% Function to calculate the discriminant of a quaratic equation % ax^2 + bx + c = 0
delta=b^2 - 4*a*c;
Giả sử phương trỡnh bậc hai cần tỡm nghiệm số làx2+ 4x+ 3 = 0. Cỏc hệ số phương trỡnh làa= 1,b= 4vàc= 3. Sử dụng hàmdiscriminant.m vừa tạo chỳng ta cú thể tớnh được ngay biệt thức của phương trỡnh này
ằdelta=discriminant(a,b,c) delta =
4
•Tạo cỏc chương trỡnh MATLAB
Một chương trỡnh MATLAB chứa một tập hợp cỏc cõu lệnh. Khi chạy một chương trỡnh MATLAB thỡ MATLAB tiến hành tất cả cỏc cõu lệnh chứa trong nú. Cỏc chương trỡnh MATLAB cú thể làm việc với cỏc dữ liệu đang tồn tại ở trongworkspace, hoặc cũng cú thể tạo ra cỏc dữ liệu mới để làm việc. Tuy cỏc chương trỡnh MATLAB khụng trả lại cỏc đối số ra (output argument) nhưng cỏc biến do chương trỡnh tạo ra được lưu lại ởworkspacevà được sử dụng ở cỏc cõu lệnh tiếp theo.
Vớ dụ chương trỡnhquadEqn.msau đõy mụ tả một chương trỡnh MATLAB để tớnh nghiệm của phương trỡnh bậc haiax2+bx+c= 0
Vi dụ: Chương trỡnhquadEqn.m
% Nhap cac hang so a, b, c
disp(’Chuong trinh tinh nghiem cua phuong trinh bac 2’) a=input(’Nhap vao hang so a=’);
b=input(’Nhap vao hang so b=’); c=input(’Nhap vao hang so c=’); % Tinh biet thuc delta delta=discriminant(a, b, c) % Xet biet thuc va tinh nghiem so if delta > 0
x1=(-b + sqrt(delta))/(2*a); x2=(-b - sqrt(delta))/(2*a);
disp([’Hai nghiem cua pt la x1=’ num2str(x1) ’ va x2=’ num2str(x2)]) elseif delta==0
x1=-b/(2*a);
disp([’Phuong trinh co mot nghiem duy nhat x=’ num2str(x1)]) elseif delta < 0
disp(’Phuong trinh vo nghiem! ’) end
Sử dụng chương trỡnhquadEqn.mnày tớnh nghiệm số của phương trỡnhx2+ 4x+ 3 = 0cho ta kết quả như sau:
ằ quadEqn
Chuong trinh tinh nghiem cuar phuong trinh bac 2 Nhap vao hang so a=1
Nhap vao hang so b=4 Nhap vao hang so c=3
Hai nghiem cua phuong trinh la x1=-1 va x2=-3 và của phương trỡnh4x2+ 3x+ 2là
ằ quadEqn Chuong trinh tinh nghiem cuar phuong trinh bac 2 Nhap vao hang so a=4
Nhap vao hang so b=3 Nhap vao hang so c=2 Phuong trinh vo nghiem!