Вложенная функция — это функция, созданная внутри другой функции в MATLAB. Особенность вложенных функций заключается в том, что они могут использовать и изменять переменные, определенные в родительской функции.
Синтаксис
Эти вложенные функции в MATLAB могут легко обращаться к переменным родительской функции. Вот синтаксис для определения вложенных функций в MATLAB:
функция родитель
дисп ( «Родительская функция» )
вложенный эффект
функция вложенный эффект
дисп ( 'Вложенная функция' )
конец
конец
Пример кода
Ниже мы привели код MATLAB вложенной функции:
функция родительская функция
х = 10 ;
вложенная функция1 ( )
% Вложенная функция 1
функция вложенная функция1
дисп ( «Внутри вложенной функции1» ) ;
дисп ( Икс ) ; % Доступ к переменной x из родительской функции
и = двадцать ;
вложенная функция2 ( )
% Вложенная функция 2
функция вложенная функция2
дисп ( «Внутри вложенной функции2» ) ;
дисп ( Икс ) ; % Доступ к переменной x из родительской и вложенной функции 1
дисп ( и ) ; % Доступ к переменной y из вложенной функции 1
конец
конец
конец
Выше MATLAB определяет имя основной функции как родительская функция , и он определяет две вложенные функции: вложенная функция1 и вложенная функция2 .
Вложенная функция1 отображает значение переменной x из родительской функции и определяет другую переменную y. После этого он вызовет функцию с именем nestedFunction2.
Вложенная функция2 отображает значение x из родительской функции и вложенной функции1, а также значение y из вложенной функции1. После выполнения кода на выходе будут отображаться сообщения от обеих вложенных функций вместе со значениями x и y.
Совместное использование переменных из вложенных функций в основную функцию
В MATLAB мы также можем определять переменные и передавать их из вложенной в основную функцию.
функция родительвложенная функция
функция вложенная функция
х = 10 ;
конец
х = х+ 1 ;
дисп ( Икс ) ;
конец
Этот код MATLAB определяет функцию с именем parent, которая содержит вложенную функцию с именем вложенная функция . Код присваивает переменной x значение 10 в функции nestedfunc, затем увеличивает его на 1 в родительской функции и отображает результат.
Вложение нескольких функций в одну родительскую функцию
В MATLAB мы также можем включать несколько функций в одну основную родительскую функцию.
% несколько функций под одной и той же родительской функциейфункция родитель
вложенная функция1
вложенная функция2
функция вложенная функция1
fprintf ( 'linuxhint.com\n' ) ;
конец
функция вложенная функция2
fprintf ( «Добро пожаловать в Linuxhint» ) ;
конец
конец
Этот код MATLAB определяет функцию с именем parent, которая содержит две вложенные функции:nestedfunc1 иnestedfunc2. При вызове родительской функции выполняются обе вложенные функции. nestedfunc1 выводит сообщение Linuxhint.com, а nestedfunc2 выводит сообщение «Добро пожаловать в Linuxhint».
Совместное использование переменных среди вложенных функций
В MATLAB мы также можем определять и совместно использовать переменные функций с одним родителем с двумя вложенными функциями.
% две вложенные функции под одной и той же родительской функциейфункция родитель
х = 5
вложенный1
вложенный2
функция вложенный1
х = х* 2 ;
конец
функция вложенный2
х = х+ 5 ;
конец
дисп ( Икс )
конец
Этот код MATLAB определяет функцию с именем parent, которая объявляет переменную x со значением 5. Затем она содержит две вложенные функции:nested1 иnested2.
Во вложенном1 значение x умножается на 2, но, поскольку x не передается явно в качестве аргумента, внутри вложенного1 создается новая локальная переменная x вместо изменения внешней переменной x.
В вложенном2 значение x увеличивается на 5, также создается новая локальная переменная x в вложенном2.
После выполнения вложенных функций код отображает значение внешней переменной x, которая остается неизменной на уровне 5, поскольку изменения, сделанные во вложенных функциях, влияют только на локальные переменные внутри этих функций, а не на внешнюю переменную.
Заключение
Вложенные функции в MATLAB могут упорядочивать код, расширять возможности повторного использования и повышать производительность. Они позволяют функциям получать доступ к переменным, определенным в их родительских функциях, и изменять их, обеспечивая лучшую инкапсуляцию кода. Вложенные функции уменьшили потребность в глобальных переменных или передаче нескольких аргументов между функциями. В этой статье рассматриваются различные примеры вложенных функций в MATLAB.