26/05/2018, 16:39

Cách viết hàm trong MATLAB

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à ...

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.

cach viet ham trong matlab

Khi bạn viết hàm trong MATLAB, các hàm có thể chấp nhận nhiều tham số đầu vào và có thể trả về nhiều tham số đầu ra.

Cú pháp của một hàm trong MATLAB có dạng như dưới đây:

function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)

Ví dụ

Hàm dưới đây có tên mymax được viết trong file có tên là mymax.m. Hàm lấy 5 số là tham số và trả về giá trị lớn nhất của các số.

Tạo một file hàm, đặt tên là mymax.m và nhập đoạn mã dưới đây vào file:

cach viet ham trong matlab 2

Dòng đầu tiên của hàm bắt đầu bằng từ khóa function. Nó cung cấp tên của hàm và thứ tự các tham số. Trong ví dụ này, hàm mymax có 5 tham số đầu vào và 1 tham số đầu ra.

Các dòng chú thích đặt ngay sau lệnh function, hỗ trợ văn bản. Các dòng này sẽ được in khi bạn nhập:

help mymax

MATLAB sẽ thực thi các lệnh trên và trả về kết quả dưới đây:

This function calculates the maximum of the

five numbers given as input

Bạn có thể gọi hàm:

mymax(34, 78, 89, 23, 11)

MATLAB sẽ thực thi các lệnh trên và trả về kết quả dưới đây:

ans = 89

Hàm ẩn danh trong MATLAB

Hàm ẩn danh giống như hàm nội tuyến (inline function) trong các ngôn ngữ lập trình truyền thống, được định nghĩa trong một câu lệnh trong MATLAB. Hàm ẩn danh trong MATLAB bao gồm một biểu thức MATLAB và đối số đầu vào, đầu ra bất kỳ.

Bạn có thể xác định hàm ẩn danh ngay tại dòng lệnh trong MATLAB hoặc trong một hàm hoặc script.

Bằng cách này bạn có thể tạo các hàm đơn giản mà không cần phải tạo các file cho chúng.

Cú pháp để tạo hàm ẩn danh từ một biểu thức trong MATLAB:

f = @(arglist)expression

Ví dụ

Trong ví dụ này tạo một hàm ẩn danh có tên là power, hàm này lấy 2 số làm đầu vào và trả về kết quả là số đầu tiên lấy số mũ là số thứ 2.

Tạo file script và nhập đoạn mã dưới đây vào:

cach viet ham trong matlab 3

Khi chạy file trên nó sẽ trả về kết quả:

cach viet ham trong matlab 4

Hàm chính và hàm phụ trong MATLAB

Khác với hàm ẩn danh, các hàm khác trong MATLAB phải được định nghĩa trong một file. Mỗi hàm chứa các hàm chính, xuất hiện ở đầu và các hàm phụ tùy chọn đi kèm sau hàm chính và được hàm chính sử dụng.

Các hàm chính có thể được gọi từ bên ngoài file định nghĩa chúng, hoặc từ dòng lệnh hoặc các hàm khác. Các hàm phụ không được gọi từ dòng lệnh hoặc các hàm khác hay bên ngoài file hàm.

Các hàm phụ chỉ có thể nhìn thấy hàm chính và các hàm phụ khác trong file hàm định nghĩa chúng.

Ví dụ

Viết hàm trong MATLAB đặt tên là quadratic để tính toán kết quả ban đầu của phương trình căn bậc 2. Hàm này lấy 3 số đầu vào, hệ số căn bậc 2, hệ số tuyến tính và hằng số, và trả về kết quả ban đầu. File hàm quadratic.m sẽ chứa hàm quadratic chính và các hàm phụ disc.

Tạo một file hàm quadratic.m và nhập đoạn mã dưới đây vào:

cach viet ham trong matlab 5

Bạn có thể gọi hàm trên từ dấu nhắc lệnh như sau:

quadratic(2,4,-4)

MATLAB sẽ thực thi lệnh trên và trả về kết quả:

ans = 0.7321

Hàm lồng trong MATLAB

Bạn có thể định nghĩa các hàm trong phần thân của một hàm khác. Hàm này được gọi là hàm lồng. Một hàm lồng trong MATLAB có chứa bất kỳ hoặc tất cả các thành phần của hàm khác.

Các hàm lồng trong MATLAB được định nghĩa trong phạm vi của một hàm khác và chúng chia sẻ quyền truy cập không gian làm việc của hàm được chứa.

Cú pháp hàm lồng trong MATLAB có dạng như dưới đây:

cach viet ham trong matlab 6

Ví dụ

Viết lại hàm quadratic ở trên, nhưng trong ví dụ này hàm disc sẽ là hàm lồng.

Tạo một file hàm quadratic2.m và nhập đoạn mã dưới đây vào:

cach viet ham trong matlab 7

Bạn có thể gọi hàm trên từ dấu nhắc lệnh như sau:

quadratic2(2,4,-4)

MATLAB sẽ thực thi lệnh trên và trả về kết quả dưới đây:

ans = 0.73205

Hàm Private trong MATLAB

Hàm private trong MATLAB là hàm chính, chỉ hiển thị cho một nhóm giới hạn các chức năng khác. Nếu không muốn để lộ việc triển khai một hàm, bạn có thể tạo các hàm đó như các hàm Private.

Hàm Private nằm trong các thư mục con với tên riêng. Các hàm này chỉ hiển thị với các hàm trong thư mục chính.

Ví dụ

Viết lại hàm quadratic ở trên, nhưng trong ví dụ này hàm disc sẽ là hàm private.

Tạo một thư mục con đặt tên là private trong thư mục đang làm việc. Lưu trữ file hàm disc.m dưới đây vào đó:

cach viet ham trong matlab 8

Tạo hàm quadratic3.m trong thư mục đang làm việc và nhập đoạn mã dưới đây vào:

cach viet ham trong matlab 9

Ngoài ra bạn có thể gọi hàm từ dấu nhắc lệnh như sau:

quadratic3(2,4,-4)

MATLAB sẽ thực thi lệnh trên và trả về kết quả dưới đây:

ans = 0.73205

Biến Global trong MATLAB

Các biến global trong MATLAB có thể được chia sẻ nhiều hơn biến hàm. Để làm được điều này, bạn cần phải khai báo biến là biến global trong tất cả các hàm.

Nếu muốn truy cập biến từ không gian làm việc cơ bản, bạn khai báo biến tại dòng lệnh.

Khai báo biến global phải được thực hiện trước khi biến được sử dụng trong hàm. Cách tốt nhất để phân biệt biến global với các biến khác là sử dụng chữ in hoa cho tên biến global.

Ví dụ

Tạo một file hàm đặt tên là average.m và nhập đoạn mã dưới đây vào:

cach viet ham trong matlab 10

Tạo file script và nhập đoạn mã dưới đây vào:

cach viet ham trong matlab 11

Khi chạy file trên, nó sẽ trả về kết quả dưới đây:

av = 35.500

http://thuthuat.taimienphi.vn/cach-viet-ham-trong-matlab-32846n.aspx
Như vậy trong toàn bộ bài viết trên Zaidap.com vừa giới thiệu cho bạn về hàm trong MATLAB cũng như cách viết hàm trong MATLAB. Tham khảo một số bài viết khác trên trang Zaidap.com để tìm hiểu về các toán tử, kiểu dữ liệu, cũng như cách khai báo biến trong MATLAB nhé.

0