Jak korzystać z funkcji zagnieżdżonych w MATLABie

Jak Korzystac Z Funkcji Zagniezdzonych W Matlabie



Funkcje zagnieżdżone w MATLABie mogą definiować funkcje w ramach innych funkcji. Może to być przydatne do organizowania kodu, zwiększania możliwości ponownego użycia kodu i poprawy wydajności.

Funkcja zagnieżdżona to funkcja utworzona wewnątrz innej funkcji w MATLAB-ie. Cechą szczególną funkcji zagnieżdżonych jest to, że mogą one używać i zmieniać zmienne zdefiniowane w funkcji nadrzędnej.

Składnia







Te zagnieżdżone funkcje w MATLAB-ie mogą łatwo uzyskiwać dostęp do zmiennych funkcji nadrzędnych. Oto składnia definiowania funkcji zagnieżdżonych w MATLAB:



funkcjonować rodzic

disp ( „Funkcja rodzica” )

zagnieżdżonyfx

funkcjonować zagnieżdżonyfx

disp ( „Funkcja zagnieżdżona” )

koniec

koniec

Przykładowy kod

Poniżej podaliśmy kod MATLAB-a zagnieżdżonej funkcji:



funkcjonować funkcja nadrzędna

x = 10 ;



zagnieżdżonaFunkcja1 ( )



% Funkcja zagnieżdżona 1

funkcjonować zagnieżdżonaFunkcja1

disp ( „Wewnątrz funkcji zagnieżdżonej 1” ) ;

disp ( X ) ; % Dostęp do zmiennej x z funkcji nadrzędnej

i = 20 ;



zagnieżdżonaFunkcja2 ( )



% Funkcja zagnieżdżona 2

funkcjonować zagnieżdżonaFunkcja2

disp ( „Wewnątrz zagnieżdżonej funkcji 2” ) ;

disp ( X ) ; % Dostęp do zmiennej x z funkcji nadrzędnej i zagnieżdżonej 1

disp ( I ) ; % Dostęp do zmiennej y z funkcji zagnieżdżonej 1

koniec

koniec

koniec

Powyżej MATLAB definiuje nazwę głównej funkcji jako funkcja nadrzędna i definiuje dwie zagnieżdżone funkcje: zagnieżdżonaFunkcja1 I zagnieżdżonaFunkcja2 .





Funkcja nestedFunction1 wyświetla wartość zmiennej x z funkcji nadrzędnej i definiuje inną zmienną y. Następnie wywoła nazwę funkcji nestedFunction2.

Funkcja nestedFunction2 wyświetla wartość x z funkcji nadrzędnej i funkcji nestedFunction1, a także wartość y z funkcji nestedFunction1. Po wykonaniu kodu na wyjściu pojawią się komunikaty z obu zagnieżdżonych funkcji wraz z wartościami x i y.



  Zrzut ekranu komputera. Opis generowany automatycznie ze średnią pewnością

Udostępnianie zmiennych z funkcji zagnieżdżonych do funkcji głównej

W MATLABie możemy również definiować zmienne i udostępniać je z funkcji zagnieżdżonej do głównej.

funkcjonować rodzic

zagnieżdżona funkcja

funkcjonować zagnieżdżona funkcja

x = 10 ;

koniec

x = x+ 1 ;

disp ( X ) ;

koniec

Ten kod MATLAB definiuje funkcję o nazwie rodzic, która zawiera zagnieżdżoną funkcję o nazwie zagnieżdżona funkcja . Kod przypisuje wartość 10 do zmiennej x w funkcji nestedfunc, następnie zwiększa ją o 1 w funkcji nadrzędnej i wyświetla wynik.

Zagnieżdżanie wielu funkcji w ramach tej samej funkcji nadrzędnej

W MATLAB możemy również uwzględnić wiele funkcji w ramach jednej głównej funkcji nadrzędnej.

% wielu funkcji w ramach tej samej funkcji nadrzędnej

funkcjonować rodzic

zagnieżdżona funkcja1

zagnieżdżona funkcja2

funkcjonować zagnieżdżona funkcja1

fprintf ( 'linuxhint.com\n' ) ;

koniec

funkcjonować zagnieżdżona funkcja2

fprintf ( „Witamy w Linuxhint” ) ;

koniec

koniec

Ten kod MATLAB definiuje funkcję o nazwie parent, która zawiera dwie zagnieżdżone funkcje: nestedfunc1 i nestedfunc2. Kiedy funkcja nadrzędna jest wywoływana, wykonuje obie zagnieżdżone funkcje. nestedfunc1 wyświetla komunikat Linuxhint.com, a nestedfunc2 wyświetla komunikat „Witamy w Linuxhint”.

  Obraz zawierający tekst, czcionkę, zrzut ekranu Opis generowany automatycznie

Współdzielenie zmiennych między funkcjami zagnieżdżonymi

W MATLAB możemy również definiować i udostępniać zmienne funkcji jednego rodzica z dwiema zagnieżdżonymi funkcjami.

% dwie funkcje zagnieżdżone w tej samej funkcji nadrzędnej

funkcjonować rodzic

x = 5

zagnieżdżony1

zagnieżdżony2

funkcjonować zagnieżdżony1

x = x* 2 ;

koniec

funkcjonować zagnieżdżony2

x = x+ 5 ;

koniec

disp ( X )

koniec

Ten kod MATLAB definiuje funkcję o nazwie parent, która deklaruje zmienną x o wartości 5. Następnie zawiera dwie zagnieżdżone funkcje: nested1 i nested2.

W nested1 wartość x jest mnożona przez 2, ale ponieważ x nie jest jawnie przekazywana jako argument, tworzy nową zmienną lokalną x wewnątrz nested1 zamiast modyfikować zewnętrzną zmienną x.

W nested2 wartość x jest zwiększana o 5, tworząc również nową zmienną lokalną x wewnątrz nested2.

Po wykonaniu funkcji zagnieżdżonych kod wyświetla wartość zewnętrznej zmiennej x, która pozostaje niezmieniona i wynosi 5, ponieważ modyfikacje wprowadzone w funkcjach zagnieżdżonych wpływają tylko na zmienne lokalne w tych funkcjach, a nie na zmienną zewnętrzną.

  Obraz zawierający tekst, zrzut ekranu, oprogramowanie, linię Opis generowany automatycznie

Wniosek

Zagnieżdżone funkcje w MATLAB mogą organizować kod, zwiększać możliwość ponownego użycia i poprawiać wydajność. Umożliwiają funkcjom dostęp i modyfikację zmiennych zdefiniowanych w ich funkcjach nadrzędnych, umożliwiając lepszą enkapsulację kodu. Funkcje zagnieżdżone zmniejszyły potrzebę stosowania zmiennych globalnych lub przekazywania wielu argumentów między funkcjami. W tym artykule opisano różne przykłady funkcji zagnieżdżonych w MATLAB-ie.