1.Phương pháp xây dựng các hàm vàchương trình con chương trình con
- Hàm được viết trong m file, tên của m file được bắt đầu bằng ký tự chữ hoặc số và có phần mở rộng là.m.
- Dịng trên cùng của hàm m file phải chứa từ khoá function và viết theo đúng quy cách quy định trong Matlab.function [biến ra1, biến ra 2...] = <Tên hàm>(biến vào 1, biến vào 2..) - Tên của m file phải trùng với <tên hàm>. Ví dụ: tệp stat.m chứa nội dung sau tính ra độ lệch chuẩn của véc tơ x = [x1 x2... xn]
function [mean,stdev] = stat(x) n = length(x);
mean = sum(x)/n;
stdev = sqrt(sum((x-mean).^2/n)); Chúng ta có thể định nghĩa một hàm con trong hàm khác bằng cách gọi ra từ khoá function bên dưới thân của hàm chính. Ví dụ dưới đây sẽ định nghĩa hàm con avg bên trong tệp stat.m:
function [mean,stdev] = stat(x) n = length(x);
mean = avg(x,n);
stdev = sqrt(sum((x- avg(x,n)).^2)/n); function mean = avg(x,n)
mean = sum(x)/n;
Khi Matlab khơng nhận ra một tên hàm, nó sẽ tìm kiếm tên tệp trùng với tên hàm, nếu tìm ra nó sẽ dịch và đưa vào bộ nhớ. Trong trường hợp tổng quát nếu ta nhập một tên vào Matlab, nó sẽ kiểm tra theo trình tự sau:
1. Kiểm tra xem đó có phải là tên biến 2. Kiểm tra xem đó có phải là tên hàm nội trú trong Matlab.
3. Kiểm tra xem đó có phải là hàm m. file Khi gọi một m.file từ dòng nhắc hoặc trong m.file khác đưa hàm vào bộ nhớ, và nó sẽ lưu lại ở đó cho tới khi ta thốt khỏi Matlab hoặc dùng lệnh clear.
2. Các đối số vào, ra
Chú ý
- Hàm m-file có thể khơng chứa đối số nào - Hàm có thể được gọi với số đối số ra hoặc vào ít hơn số đối số được khai báo trong hàm - Khi hàm được gọi ra các biến sử dụng trong hàm chỉ tồn tại tạm thời trong vùng bộ nhớ dành cho hàm
- Hàm trong Matlab có thể chứa khơng hạn chế thơng số đầu vào, khi đó biến đầu vào cuối cùng của hàm phải được khai báo là varargin, khi đó biến đầu vào được coi như một mảng khối có vơ số phần tử. Tương tự hàm cũng có thể chứa vơ hạn các thông số ra khi ta khai báo bằng varargout.
- Câu lệnh varagin và varagout
Cho phép định nghĩa vô số biến vào và ra của hàm trong Matlab
Cú pháp:
function varargout = foo(n) y = function bar(varargin) Mô tả:
Hàm varargout = foo(n) sẽ trả một số lượng không hạn chế các biến ra từ hàm foo.m. Hàm y = function bar(varargin) Chấp nhận vô số biến đầu vào của hàm bar.m
Các câu lệnh varargin và varargout chỉ được sử dụng bên trong hàm m.file để chứa biến tuỳ chọn vào hoặc ra của hàm. Chúng phải được định nghĩa như là một biến cuối cùng trong danh sách các biến khai báo ở câu lệnh function.