주요 콘텐츠

global

변수를 전역으로 선언

설명

참고

전역 변수는 비효율적이며 오류를 진단하기 어렵게 만듭니다. 입력 변수를 갖는 함수를 대신 사용하십시오. 자세한 내용은 불필요한 데이터 복사본 방지하기 항목을 참조하십시오.

global var1 ... varN은 지정된 변수를 전역 범위로 선언합니다.

일반적으로 각 MATLAB® 함수는 다른 함수나 기본 작업 공간의 변수와는 별개인 자체 지역 변수를 가집니다. 그러나 여러 함수가 한꺼번에 한 특정 변수 이름을 global로 선언하면, 이 모든 함수는 하나의 같은 변수를 공유하게 됩니다. 그리고 아무 함수에서나 이 변수를 변경하면 그 변수를 전역으로 선언한 모든 함수에서 그 변경 사항을 볼 수 있습니다.

global 문을 처음으로 실행했을 때 전역 변수가 존재하지 않는 경우에는 빈 0x0 행렬로 초기화됩니다.

현재 작업 공간에 전역 변수와 동일한 이름을 갖는 변수가 이미 존재할 경우 MATLAB은 경고를 발생시키고 해당 변수의 값과 범위를 전역 변수에 맞게 변경합니다.

예제

예제

모두 축소

현재 작업 폴더에 전역 변수의 값을 설정하는 함수를 만듭니다.

function setGlobalx(val)
global x
x = val;

현재 작업 폴더에 전역 변수의 값을 반환하는 함수를 만듭니다. 이 두 함수는 각기 다른 함수 작업 공간을 가지지만, 두 함수 모두 전역 변수에 액세스할 수 있습니다.

function r = getGlobalx
global x
r = x;

전역 변수 x의 값을 설정하고 다른 작업 공간에서 이 값을 가져옵니다.

setGlobalx(1138)
r = getGlobalx
r =

        1138

이전 예제에서 정의한 함수를 사용하여 전역 변수에 값을 할당합니다.

clear all
setGlobalx(42)

전역 변수 x의 값을 표시합니다. 이 변수가 전역 변수이지만 명령줄에서는 이 변수에 액세스할 수 없습니다.

x
Undefined function or variable 'x'.

명령줄에서 x를 전역 변수로 선언하고 이 변수의 값을 표시합니다.

global x
x
x =

    42

x의 값을 변경하고 이전 예제에서 정의한 함수를 사용하여 다른 작업 공간에서 이 전역 값을 반환합니다.

x = 1701;
r = getGlobalx
r =

        1701

  • 모든 작업 공간에서 전역 변수를 지우려면 clear global variable을 사용하십시오.

  • 현재 작업 공간에서만 전역 변수를 지우고 다른 작업 공간에서는 지우지 않으려면 clear variable을 사용하십시오.

  • 전역 변수는 기본 작업 공간 및 함수 작업 공간과 별개인 자신만의 고유한 작업 공간을 가집니다. 전역 변수를 사용하는 것은 비효율적입니다. MATLAB은 함수의 입력 변수에 메모리 최적화를 적용하지만 전역 변수에는 적용하지 않습니다. 자세한 내용은 불필요한 데이터 복사본 방지하기 항목을 참조하십시오.

    또한, 전역 변수는 주의가 필요한 위험을 수반합니다. 모든 함수가 전역 변수에 액세스하고 업데이트할 수 있습니다. 따라서 이 변수를 사용하는 다른 함수가 예기치 않은 결과를 반환할 수 있습니다. 예를 들면 다음과 같습니다.

    • "새" 전역 변수에 의도치 않게 기존의 전역 변수와 동일한 이름을 지정하면 한 함수가 다른 함수에서 예상하는 값을 덮어쓸 수 있습니다. 이러한 오류는 진단하기가 어렵습니다.

    • 여러 함수에서 전역 변수가 변경된 경우 이러한 함수를 다른 순서로 호출하면 결과가 달라질 수 있습니다.

    가급적이면 전역 변수를 사용하지 마십시오. 변수와 작업 공간에 대한 자세한 내용은 작업 공간(Workspace) 간 데이터 공유하기 페이지의 전역 변수 하위 섹션을 참조하십시오.

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨