Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

스크립트에 함수 추가하기

R2016b부터 라이브 스크립트를 비롯한 MATLAB® 스크립트에는 함수를 정의하는 코드가 포함될 수 있습니다. 이 함수를 로컬 함수라고 합니다. 로컬 함수는 스크립트 내에서 코드를 재사용하려는 경우 유용합니다. 로컬 함수를 추가하면 별도의 함수 파일을 생성하여 관리하지 않아도 됩니다. 로컬 함수는 또한 필요에 따라 손쉽게 함수를 추가하고 수정하고 삭제하는 등 함수를 시험적으로 사용해 보는 데에도 유용합니다.

로컬 함수를 포함하는 스크립트 만들기

로컬 함수를 포함하는 스크립트 또는 라이브 스크립트를 만들려면 탭으로 이동하고 새로 만들기 > 스크립트 또는 새로 만들기 > 라이브 스크립트를 선택하십시오. 그런 다음, 스크립트에 코드를 추가합니다. 스크립트 코드 다음, 즉 파일 맨 끝에 모든 로컬 함수를 추가합니다. 로컬 함수 앞에 적어도 한 라인의 스크립트 코드를 포함합니다. 각 로컬 함수는 자체 함수 정의문으로 시작하고 end 키워드로 끝나야 합니다. 이 함수는 어떤 순서로 지정해도 좋습니다.

예를 들어, 스크립트 mystats.m을 만들어 보겠습니다.

edit mystats

이 파일에 두 로컬 함수 mymeanmymedian을 포함합니다. 스크립트 mystats는 배열을 선언하고 배열의 길이를 확인한 다음, 로컬 함수 mymeanmymedian을 사용하여 배열의 평균과 중앙값을 계산합니다.

x = 1:10;
n = length(x);
avg = mymean(x,n);
med = mymedian(x,n);

function a = mymean(v,n)
% MYMEAN Local function that calculates mean of array.

    a = sum(v)/n;
end

function m = mymedian(v,n)
% MYMEDIAN Local function that calculates median of array.

    w = sort(v);
    if rem(n,2) == 1
        m = w((n + 1)/2);
    else
        m = (w(n/2) + w(n/2 + 1))/2;
    end
end

라이브 스크립트에 로컬 함수를 추가하면 MATLAB이 첫 번째 로컬 함수 정의 앞에 자동으로 섹션 나누기를 추가하고 그 뒤의 섹션 나누기는 모두 제거합니다. 이는 라이브 스크립트가 로컬 함수 내에서 개별 섹션을 지원하지 않기 때문입니다.

로컬 함수를 포함하는 스크립트 실행하기

로컬 함수를 포함하는 스크립트 또는 라이브 스크립트를 실행하려면 편집기 탭 또는 라이브 편집기 탭에서 실행 버튼을 클릭하십시오. 또한 저장된 스크립트 이름을 명령 창에 입력할 수도 있습니다.

개별 섹션을 실행하려면 섹션 내부에 커서를 두고 섹션 실행 버튼을 사용하십시오(.m 파일의 경우 R2017b 이상이 필요함). .mlx 파일에서는 로컬 함수 정의 앞에 있는 섹션만 실행할 수 있습니다.

로컬 함수 및 변수에 대한 제한 사항

로컬 함수는 해당 함수가 정의되어 있는 파일 내에서만 인식됩니다. 로컬 함수는 다른 파일에 있는 함수에서는 인식되지 않으며 명령 창에서 호출할 수 없습니다.

현재 파일의 로컬 함수는 다른 파일의 함수보다 우선합니다. 즉, 스크립트 내의 함수를 호출하면 MATLAB이 다른 위치에서 함수를 찾기 전에 이 함수가 로컬 함수인지 여부를 검사합니다. 이를 통해 다른 파일에 특정 함수의 원본을 유지하면서 이 함수에 대한 대체 버전을 생성할 수 있습니다.

스크립트는 기본 작업 공간에 변수를 생성하고 이 변수에 액세스합니다. 다른 모든 함수와 마찬가지로 로컬 함수는 자체 작업 공간을 가지며, 이 작업 공간은 기본 작업 공간과 별개입니다. 로컬 함수는 다른 함수의 작업 공간에 있는 변수나 기본 작업 공간에 있는 변수를 인수로 전달받지 않는 한 그 변수에 액세스할 수 없습니다.

로컬 함수에 대한 도움말 액세스하기

명령줄 또는 다른 파일의 함수에서 로컬 함수를 호출할 수는 없지만 help 명령을 사용하여 해당 도움말에 액세스할 수 있습니다. 스크립트의 이름과 로컬 함수의 이름을 모두 지정합니다. 이때 > 문자를 사용하여 이름을 구분합니다.

예를 들면 다음과 같습니다.

help mystats>mymean
 mymean Local function that calculates mean of array.

관련 항목