주요 콘텐츠

기본 작업 공간(Base Workspace)과 함수 작업 공간(Function Workspace)

MATLAB®에서 처음 작업하는 경우 대개 기본 작업 공간과 상호 작용하게 됩니다. 사용자 고유의 함수 또는 클래스를 정의하고 디버거를 사용하여 코드를 분석할 경우 함수 작업 공간과 상호 작용할 가능성이 높습니다. 여기에서는 작업 공간 간의 차이점과 현재 활성화된 작업 공간을 확인하는 방법에 대해 설명합니다.

기본 작업 공간이란?

일반적으로 기본 작업 공간에는 사용자가 명령줄과 스크립트에서 코드를 실행하여 생성하는 변수가 들어 있습니다. 예를 들어 명령줄에서 X에 값을 할당하면 기본 작업 공간에 X가 생성되거나 업데이트됩니다.

X = rand(10);

The Workspace panel shows four columns: Name, Value, Size, and Class. The name of the variable is X, and its value is 10-by-10 double.

변수를 지우거나 현재 MATLAB 세션을 종료할 때까지 기본 작업 공간의 변수가 메모리에 존재합니다.

함수 작업 공간

함수 내 코드는 기본 작업 공간을 사용하지 않습니다. 모든 함수는 자체 함수 작업 공간을 가집니다. 각각의 함수 작업 공간은 기본 작업 공간 및 기타 모든 작업 공간과 별개이므로 데이터 무결성이 보호됩니다. 공통 파일의 로컬 함수도 자체 작업 공간을 가집니다. 함수 내에서 생성된 변수는 해당 함수의 작업 공간에 속하고 그 함수 내에서만 사용 가능합니다.

예를 들어 파일에 함수를 정의한다고 가정해 보겠습니다. 이 예제에서 areaCircle 함수는 이름이 R인 입력값을 받고 지역 변수 rSquared를 생성한 다음 A라는 이름의 출력값을 반환합니다.

편집기에서 중단점을 설정하면 함수를 호출할 때 실행이 일시 중지되며, 그러면 함수 작업 공간과 상호 작용할 수 있습니다. 디버그 중일 때에는 편집기와 디버거에 있는 옵션을 사용하여 현재 스택에서 작업 공간(기본 작업 공간 포함) 간에 전환할 수 있습니다.

When the desktop is in debugging mode, the name of the function workspace appears at the top of both the Workspace panel and the Editor. The Debugger panel includes a section named Function call stack below the section named Breakpoints.

areaCircle의 실행이 끝나면 기본 작업 공간에 myAreaX가 포함되어 있습니다. areaCircle에 대해 지역 변수였던 A, R, rSquared 변수는 기본 작업 공간에 있지 않습니다.

The Workspace panel shows two variables, myArea and X.

스크립트는 자체 작업 공간이 없습니다. 함수에서 스크립트를 호출하면 스크립트는 함수 작업 공간을 사용합니다. 그 외의 경우, 스크립트는 기본 작업 공간을 사용합니다.

중첩 함수

로컬 함수와 같이 중첩 함수도 자체 작업 공간을 가집니다. 그러나 다음과 같은 두 가지 주요한 차이점이 있습니다.

  • 부모 함수 작업 공간의 변수를 중첩 함수에서도 사용할 수 있습니다.

  • 중첩 함수와 그 부모 함수의 모든 변수는 명시적으로 정의되어야 합니다. 즉, 값이 함수 작업 공간에 미리 존재하지 않으면 이러한 값을 변수에 할당하는 함수 또는 스크립트를 호출할 수 없습니다.

자세한 내용은 중첩 함수 항목을 참조하십시오.

참고 항목

도움말 항목