MATLAB에서 중첩 함수를 사용하는 방법

Matlabeseo Jungcheob Hamsuleul Sayonghaneun Bangbeob



MATLAB의 중첩 함수는 다른 함수 내에서 함수를 정의할 수 있습니다. 이것은 코드를 구성하고, 코드를 더 재사용 가능하게 만들고, 성능을 향상시키는 데 유용할 수 있습니다.

중첩 함수는 MATLAB의 다른 함수 내부에 생성되는 함수입니다. 중첩 함수의 특별한 점은 상위 함수에 정의된 변수를 사용하고 변경할 수 있다는 것입니다.

통사론







MATLAB의 이러한 중첩 함수는 상위 함수 변수에 쉽게 액세스할 수 있습니다. 다음은 MATLAB에서 중첩 함수를 정의하는 구문입니다.



기능 부모의

디스플레이 ( '부모 기능' )

nestedfx

기능 nestedfx

디스플레이 ( '중첩 함수' )



예제 코드

아래에는 중첩 함수의 MATLAB 코드가 있습니다.



기능 부모 기능

엑스 = 10 ;



nestedFunction1 ( )



% 중첩 함수 1

기능 nestedFunction1

디스플레이 ( '내부 nestedFunction1' ) ;

디스플레이 ( 엑스 ) ; % 상위 함수에서 변수 x에 액세스

그리고 = 이십 ;



nestedFunction2 ( )



% 중첩 함수 2

기능 nestedFunction2

디스플레이 ( '내부 nestedFunction2' ) ;

디스플레이 ( 엑스 ) ; % 상위 및 중첩 함수 1에서 변수 x에 액세스

디스플레이 ( 그리고 ) ; % 중첩 함수 1에서 변수 y에 액세스





위에서 MATLAB은 기본 함수 이름을 다음과 같이 정의합니다. 부모 기능 , 두 개의 중첩 함수를 정의합니다. nestedFunction1 그리고 nestedFunction2 .





nestedFunction1은 상위 함수의 변수 x 값을 표시하고 다른 변수 y를 정의합니다. 그런 다음 함수 이름 nestedFunction2를 호출합니다.

nestedFunction2는 부모 함수와 nestedFunction1의 x 값과 nestedFunction1의 y 값을 표시합니다. 코드를 실행한 후 출력에는 x 및 y 값과 함께 두 중첩 함수의 메시지가 표시됩니다.



  중간 신뢰도로 자동 생성된 컴퓨터 설명의 스크린샷

중첩 함수에서 주 함수로 변수 공유

MATLAB에서는 변수를 정의하고 중첩된 함수에서 주 함수로 변수를 공유할 수도 있습니다.

기능 부모의

nestedfunc

기능 nestedfunc

엑스 = 10 ;



x = x+ 1 ;

디스플레이 ( 엑스 ) ;

이 MATLAB 코드는 라는 중첩 함수를 포함하는 parent라는 함수를 정의합니다. nestedfunc . 이 코드는 nestedfunc의 변수 x에 값 10을 할당한 다음 상위 함수에서 1씩 증가시키고 결과를 표시합니다.

동일한 상위 함수 아래에 여러 함수 중첩

MATLAB에서는 단일 기본 상위 함수 내에 여러 함수를 포함할 수도 있습니다.

% 동일한 상위 함수 아래의 여러 함수

기능 부모의

nestedfunc1

nestedfunc2

기능 nestedfunc1

fprintf ( 'linuxhint.com\n' ) ;



기능 nestedfunc2

fprintf ( 'Linuxhint에 오신 것을 환영합니다' ) ;



이 MATLAB 코드는 두 개의 중첩 함수 nestedfunc1과 nestedfunc2를 포함하는 parent라는 함수를 정의합니다. 부모 함수가 호출되면 두 중첩 함수가 모두 실행됩니다. nestedfunc1은 Linuxhint.com 메시지를 출력하고 nestedfunc2는 “Welcome To Linuxhint” 메시지를 출력합니다.

  텍스트, 글꼴, 스크린샷이 포함된 사진 설명 자동 생성

중첩 함수 간에 변수 공유

MATLAB에서는 단일 부모 함수 변수를 두 개의 중첩 함수로 정의하고 공유할 수도 있습니다.

% 동일한 상위 함수 아래에 두 개의 중첩된 함수

기능 부모의

엑스 = 5

중첩1

중첩2

기능 중첩1

엑스 = 엑스* 2 ;



기능 중첩2

x = x+ 5 ;



디스플레이 ( 엑스 )

이 MATLAB 코드는 값이 5인 변수 x를 선언하는 parent라는 함수를 정의합니다. 그런 다음 nested1과 nested2라는 두 개의 중첩 함수를 포함합니다.

nested1에서는 x의 값에 2를 곱하지만 x가 명시적으로 인수로 전달되지 않기 때문에 외부 x 변수를 수정하는 대신 nested1 내에 새로운 지역 변수 x를 생성합니다.

nested2에서 x의 값은 5씩 증가하고 nested2 내에 새로운 로컬 변수 x도 생성됩니다.

중첩 함수를 실행한 후 코드는 외부 x 변수의 값을 표시합니다. 이 값은 변경되지 않고 5로 유지됩니다. 중첩 함수에서 수정한 사항은 해당 함수 내의 로컬 변수에만 영향을 미치고 외부 변수에는 영향을 미치지 않기 때문입니다.

  텍스트, 스크린샷, 소프트웨어, 라인 설명이 포함된 사진이 자동으로 생성됨

결론

MATLAB의 중첩 함수는 코드를 구성하고 재사용성을 향상하며 성능을 향상시킬 수 있습니다. 이를 통해 함수는 상위 함수에 정의된 변수에 액세스하고 수정할 수 있으므로 더 나은 코드 캡슐화가 가능합니다. 중첩 함수는 전역 변수의 필요성을 줄이거나 함수 간에 여러 인수를 전달합니다. 이 문서에서는 MATLAB의 중첩 함수에 대한 다양한 예를 다룹니다.