Tìm hiểu về Function trong MATLAB

Function trong MATLAB có gì khác với với function trong những ngôn ngữ lập trình khác? Bài viết này sẽ trình bày một số nội dung liên quan đến Function và các loại Function trong MATLAB.

Function trong MATLAB là gì?

Function (Hàm) là một nhóm các câu lệnh cùng thực hiện một tác vụ. Trong MATLAB, các hàm được định nghĩa trong các tệp (file) riêng biệt. Tên của tệp và của hàm phải giống nhau.

Hàm hoạt động dựa trên các biến nằm trong vùng làm việc (workspace) của riêng chúng. Đây còn được gọi là vùng làm việc cục bộ. Nó khác với vùng làm việc mà bạn truy cập tại dấu nhắc lệnh MATLAB. Vùng này được gọi là vùng làm việc cơ sở.

Trong MATLAB, các hàm có thể nhận nhiều hơn một tham số (arguments) đầu vào. Tương tự, chúng cũng có thể trả về nhiều hơn một tham số đầu ra.

Cú pháp của một câu lệnh tạo hàm là:

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

Các loại Function trong MATLAB

Có một số loại hàm khả dụng trong MATLAB. Chúng bao gồm: hàm cục bộ (Local Functions), hàm lồng nhau (Nested Functions), hàm riêng tư (Private Functions) và hàm ẩn danh (Anonymous Functions).

1. Hàm ẩn danh

Có thể hiểu, loại hàm này giống như một hàm nội tuyến (inline function) trong các ngôn ngữ lập trình truyền thống.

Đây là loại hàm được định nghĩa trong một câu lệnh MATLAB duy nhất. Nó bao gồm một biểu thức (expression) MATLAB duy nhất và không hạn chế số lượng tham số đầu vào và đầu ra.

Có nhiều cách để bạn định nghĩa hàm ẩn danh. Bạn có thể định nghĩa ngay tại dòng lệnh của MATLAB, trong một hàm hoặc trong một đoạn lệnh (script). Bằng những cách này, bạn có thể tạo hàm mà không cần phải tạo tệp cho chúng.

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

f = @(arglist)expression

2. Hàm cục bộ

Nếu một hàm không phải hàm ẩn danh, thì chúng phải được định nghĩa trong một tệp. Mỗi tệp hàm sẽ chứa một hàm chính (Primary Function) xuất hiện đầu tiên. Sau đó, tệp sẽ gồm bất kỳ hàm con (Sub-Function) tùy chọn nào được sử dụng.

Hàm chính có thể được gọi từ bất kỳ dòng lệnh hoặc hàm nào khác, ở ngoài tệp xác định chúng. Tuy nhiên, hàm con thì không giống vậy. Ta không thể gọi hàm con từ một dòng lệnh hoặc hàm nào nằm bên ngoài tệp hàm.

Hàm con chỉ hiển thị với hàm chính và hàm con khác nằm trong tệp hàm định nghĩa chúng.

3. Hàm lồng nhau

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

Khi một hàm được định nghĩa bên trong một hàm khác, nó sẽ chia sẻ quyền truy cập vào vùng làm việc của hàm chứa nó.

Một hàm lồng nhau có thể được định nghĩa theo cú pháp sau:

Minh họa về hàm lồng nhau trong MATLAB

Trong ví dụ trên, chúng ta thầy rằng hàm y đang nằm trong nội dung của hàm x. Do đó, chúng được gọi là các hàm lồng nhau.

4. Hàm riêng tư

Đây là một hàm chính nhưng chỉ hiển thị cho một nhóm hàm giới hạn khác. Nếu bạn không muốn công khai việc triển khai hàm, bạn có thể tạo chúng dưới dạng các hàm riêng tư.

Hàm riêng tư sẽ nằm trong các thư mục con với tên đặc biệt là private. Chúng chỉ hiển thị với các hàm nằm trong thư mục mẹ.

Biến toàn cục và Function trong MATLAB

Điểm đặc biệt của biến toàn cục có thể được dùng chung bởi nhiều hơn một hàm. Để làm được điều này, bạn cần phải khai báo một biến là toàn cục trong tất cả các hàm của MATLAB.

Nếu bạn muốn truy cập biến đó từ vùng làm việc cơ sở, hãy khai báo biến ngay tại dòng lệnh.

Việc khai báo biến toàn cục phải được thực hiện trước khi sử dụng biến trong hàm. Thông thường, một cách hay là dùng chữ cái viết hoa cho tên biến toàn cục để phân biệt chúng với các biến thông thường khác.

Tóm lại, việc sử dụng hàm trong MATLAB cũng không quá phức tạp. Hy vọng qua bài viết này, bạn đã hiểu thêm về Function trong MATLAB và có cách để ứng dụng nó tốt hơn.


Tham khảo: Tutorialspoint.com.

Đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
February 06, 2021
Share this post to:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
Tổng quan về Prompt Engineering

Tổng quan về Prompt Engineering

Tác giả: Công Anh (Software Engineer | Got It AI) Trong tech blog số này, Got It sẽ cùng bạn tìm hiểu về Prompt Engineering cũng như một số kỹ thuật cơ bản giúp đầu ra của Large Language Models (LLMs) tối ưu nhất có thể! Mục lụcChatGPT là gì? Hoạt động như thế nào?Prompt […]
Các bước tạo một thư viện Python

Các bước tạo một thư viện Python

Tác giả: Minh (Software Engineer | CAI) Trong Tech Blog số này, Got It sẽ cùng bạn tìm hiểu về 6 bước để tạo và phân phối một thư viện Python. Cụ thể, chúng ta sẽ viết một CLI command tương tự cowsay cùng với một function để các package khác có thể import và […]
Sử dụng pre-commit để thực thi PEP8 chỉ trong 3 bước

Sử dụng pre-commit để thực thi PEP8 chỉ trong 3 bước

Tác giả: Kiên (Software Engineer | CAI) Đảm bảo code tuân thủ đầy đủ các quy tắc được đề xuất trong PEP8 là một điều vô cùng quan trọng, đặc biệt là trong làm việc nhóm, khi mà yếu tố dễ đọc, dễ hiểu, và dễ bảo trì code được đặt lên hàng đầu. Dẫu […]
Giải mã Unicode

Giải mã Unicode

Tác giả: Casey (Software Engineer | CAI) Unicode, UTF-8, ASCII là những thuật ngữ rất quen với anh chị em lập trình viên, nhưng tại sao nó lại có mặt, nó giải quyết vấn đề gì và bugs gì có thể sinh ra nếu ta không nắm được nó, thì không phải lập trình viên […]
Hướng dẫn cách triển khai và debug code Python trên Docker

Hướng dẫn cách triển khai và debug code Python trên Docker

Tác giả: Kiên (Software Engineer | CAI) Bạn đã bao giờ mất hàng tiếng đồng hồ, thậm chí vài ngày để cài đặt một số thư viện cần thiết cho việc chạy một project trên máy tính của mình chưa? Nếu có thì đây là bài viết dành cho bạn. Thông thường, khi bạn tham […]
Hướng dẫn chi tiết cách push code lên Git

Hướng dẫn chi tiết cách push code lên Git

Có lẽ các bạn theo đuổi lĩnh vực IT đã quen thuộc với Git và GitHub rồi đúng không nhỉ? Tuy nhiên, Got It nhận thấy, một vài bạn đọc theo dõi blog vẫn còn mơ hồ, hoặc chưa biết cách để push code lên Git. Vậy thì hôm nay, chúng mình sẽ mang đến […]