Hàm trong MATLAB là một nhóm các lệnh cùng thực hiện 1 tác vụ. Trong MATLAB, các hàm được định nghĩa trong các file riêng biệt. Tên của file và hàm phải giống nhau.
Các hàm trong MATLAB hoạt động trên các biến trong không gian làm việc của chúng, còn được gọi là không gian làm việc cục bộ, tách biệt với không gian làm việc mà bạn truy cập tại dấu nhắc lệnh của MATLAB, được gọi là không gian làm việc cơ bản.
Các quy luật và thuộc tính
MATLAB mặc định rằng tất cả các hàm hoạt động dựa trên các mảng. Do đó, trước khi định nghĩa và tạo một hàm cần phải biết về các quy tắc, tạo mảng trong MATLAB. Bạn có thể kết hợp các hàm của riêng bạn với hàm MATLAB. Một định nghĩa hàm phải được lưu trong một “file hàm”, có đuôi mở rộng là ‘m’.
Các hàm có thể dùng chung các biến với hàm khác. Muốn truy cập biến của hàm khác phải khai báo biến đó là biến toàn cục với từ khóa global. Ví dụ: global TIC TOC
Hàm sẽ kết thúc khi gặp dòng cuối cùng hoặc gặp dòng lệnh return
Một m-file có thể chứa nhiều hàm. Hàm chính trong m-file được đặt tên trùng với tên của m-file. Các hàm khác sẽ được viết sau hàm chính. Các hàm con sẽ chỉ có thể được gọi bởi hàm chính.
Giá trị trả về của hàm có thể là số, vector, ma trận hoặc chuỗi kí tự.
Cú pháp của một hàm trong m_file có dạng như dưới đây:
function [out1,out2, …, outN] = myfunc(in1,in2,in3, …, inN)
- function: từ khóa định nghĩa hàm
- [out1,out2, …, outN]: mảng các giá trị trả về
- myfunc: tên hàm
- in1,in2,in3, …, inN: danh sách các biến
Ví dụ: Tạo hàm myfunc tính f(x) = x^2 + e^x
Tạo mới một file myfunc.m lưu tại thư mục làm việc
function y = myfunc(x) y = x.^2 + exp(x);
Ví dụ: Tạo hàm newfunc tính tổng, tích của 2 tham số đầu vào
Tạo mới một file newfunc.m lưu tại thư mục làm việc
function [y1, y2] = newfunc(x1,x2) y1 = x1 + x2; y2 = x1*x2;
Hàm ẩn danh
Hàm này rất thuận lợi trong một số trường hợp định nghĩa hàm tại dòng lệnh. Các hàm được tạo ra tại các dòng lệnh được gọi là hàm ẩn.
Cú pháp định nghĩa hàm ẩn danh:
name = @(input arguments)(functions) % định nghĩa hàm name(arg1,arg2,...); % gọi hàm
Ví dụ:
>> f = @(x)(x.^2+exp(x)) >> f(1.2)
Ở đây, f là tên của hàm, @ là các hàm xử lý , x là tham số đầu vào và x.^ 2 + exp (x) là hàm cần tính
Ví dụ:
f = {@(x) (x.^2); @(y) (y + 10); @(x,y) (x.^2 + y + 10)};
x = 1; y = 10; f{1}(x) f{2}(y) f{3}(x,y)
ans = 1 ans = 20 ans = 21