Hàm lồng nhau là một hàm được tạo bên trong một hàm khác trong MATLAB. Điều đặc biệt về các hàm lồng nhau là chúng có thể sử dụng và thay đổi các biến được xác định trong hàm cha.
cú pháp
Các hàm lồng nhau này trong MATLAB có thể dễ dàng truy cập các biến hàm cha. Đây là cú pháp để xác định các hàm lồng nhau trong MATLAB:
chức năng cha mẹ
phân tán ( 'Hàm mẹ' )
lồng nhau
chức năng lồng nhau
phân tán ( 'Hàm lồng nhau' )
kết thúc
kết thúc
Mã ví dụ
Dưới đây chúng tôi đã đưa ra mã MATLAB của một hàm lồng nhau:
chức năng chức năng cha mẹ
x = 10 ;
hàm lồng nhau1 ( )
% Hàm lồng nhau 1
chức năng hàm lồng nhau1
phân tán ( 'Chức năng lồng nhau bên trong1' ) ;
phân tán ( x ) ; % Truy cập biến x từ hàm cha
và = hai mươi ;
hàm lồng nhau2 ( )
% Hàm lồng nhau 2
chức năng hàm lồng nhau2
phân tán ( 'Chức năng lồng nhau bên trong2' ) ;
phân tán ( x ) ; % Truy cập biến x từ hàm cha và hàm lồng nhau 1
phân tán ( Và ) ; % Truy cập biến y từ hàm lồng nhau 1
kết thúc
kết thúc
kết thúc
Ở trên, MATLAB định nghĩa tên hàm chính là chức năng cha mẹ và nó định nghĩa hai hàm lồng nhau: hàm lồng nhau1 Và hàm lồng nhau2 .
NestedFunction1 hiển thị giá trị của biến x từ hàm cha và xác định một biến y khác. Sau đó, nó sẽ gọi tên hàm là nestedFunction2.
NestedFunction2 hiển thị giá trị của x từ cả hàm mẹ và NestedFunction1, cũng như giá trị của y từ NestedFunction1. Sau khi thực thi mã, đầu ra sẽ hiển thị các thông báo từ cả hai hàm lồng nhau, cùng với các giá trị của x và y.
Chia sẻ các biến từ các hàm lồng nhau đến hàm chính
Trong MATLAB, chúng ta cũng có thể định nghĩa các biến và chia sẻ chúng từ hàm lồng nhau sang hàm chính.
chức năng cha mẹlồng nhau
chức năng lồng nhau
x = 10 ;
kết thúc
x = x+ 1 ;
phân tán ( x ) ;
kết thúc
Mã MATLAB này định nghĩa một hàm được gọi là cha chứa một hàm lồng nhau được gọi là lồng nhau . Mã này gán giá trị 10 cho biến x trong hàm lồng nhau, sau đó tăng giá trị đó lên 1 trong hàm cha và hiển thị kết quả.
Lồng ghép nhiều hàm trong cùng một hàm cha
Trong MATLAB, chúng ta cũng có thể bao gồm nhiều hàm trong một hàm chính duy nhất.
% nhiều hàm trong cùng một hàm chachức năng cha mẹ
lồng nhau1
Nestedfunc2
chức năng lồng nhau1
fprintf ( 'linuxhint.com\n' ) ;
kết thúc
chức năng Nestedfunc2
fprintf ( 'Chào mừng đến với Linuxhint' ) ;
kết thúc
kết thúc
Đoạn mã MATLAB này định nghĩa một hàm có tên là parent chứa hai hàm lồng nhau: Nestedfunc1 và Nestedfunc2. Khi hàm cha được gọi, nó sẽ thực thi cả hai hàm lồng nhau. Nestedfunc1 in thông báo Linuxhint.com và Nestedfunc2 in thông báo “Chào mừng bạn đến với Linuxhint”.
Chia sẻ các biến giữa các hàm lồng nhau
Trong MATLAB, chúng ta cũng có thể định nghĩa và chia sẻ các biến của hàm cha đơn với hai hàm lồng nhau.
% hai hàm lồng nhau trong cùng một hàm chachức năng cha mẹ
x = 5
lồng nhau1
lồng nhau2
chức năng lồng nhau1
x = x* 2 ;
kết thúc
chức năng lồng nhau2
x = x+ 5 ;
kết thúc
phân tán ( x )
kết thúc
Đoạn mã MATLAB này định nghĩa một hàm gọi là parent khai báo một biến x có giá trị là 5. Sau đó, hàm này chứa hai hàm lồng nhau: Nested1 và Nested2.
Trong Nested1, giá trị của x được nhân với 2, nhưng vì x không được truyền rõ ràng dưới dạng đối số nên nó tạo một biến cục bộ mới x bên trong Nested1 thay vì sửa đổi biến x bên ngoài.
Trong Nested2, giá trị của x được tăng thêm 5, đồng thời tạo ra một biến cục bộ mới x trong Nested2.
Sau khi thực thi các hàm lồng nhau, mã hiển thị giá trị của biến x bên ngoài, giá trị này không thay đổi ở mức 5 vì các sửa đổi được thực hiện trong các hàm lồng nhau chỉ ảnh hưởng đến các biến cục bộ bên trong các hàm đó chứ không ảnh hưởng đến biến bên ngoài.
Phần kết luận
Các hàm lồng nhau trong MATLAB có thể tổ chức mã, nâng cao khả năng sử dụng lại và cải thiện hiệu suất. Chúng cho phép các hàm truy cập và sửa đổi các biến được xác định trong các hàm cha của chúng, cho phép đóng gói mã tốt hơn. Các hàm lồng nhau đã giảm nhu cầu về các biến toàn cục hoặc truyền nhiều đối số giữa các hàm. Bài viết này trình bày các ví dụ khác nhau về các hàm lồng nhau trong MATLAB.