Main Content

함수 핸들을 사용하여 로컬 함수 호출하기

이 예제에서는 로컬 함수에 대한 핸들을 생성하는 방법을 보여줍니다. 함수에서 로컬 함수에 대한 핸들을 반환하는 경우 메인 함수 외부에서 로컬 함수를 호출할 수 있습니다. 이러한 접근 방식을 통해 하나의 파일에 호출 가능한 여러 함수를 포함할 수 있습니다.

현재 작업 폴더에 파일 ellipseVals.m으로 다음 함수를 만듭니다. 이 함수는 로컬 함수에 대한 핸들이 포함된 구조체를 반환합니다.


% Copyright 2015 The MathWorks, Inc.

function fh = ellipseVals
fh.focus = @computeFocus;
fh.eccentricity = @computeEccentricity;
fh.area = @computeArea;
end

function f = computeFocus(a,b)
f = sqrt(a^2-b^2);
end

function e = computeEccentricity(a,b)
f = computeFocus(a,b);
e = f/a;
end

function ae = computeArea(a,b)
ae = pi*a*b;
end

로컬 함수에 대한 핸들의 struct를 가져오려면 이 함수를 불러옵니다.

h = ellipseVals
h = 

  struct with fields:

           focus: @computeFocus
    eccentricity: @computeEccentricity
            area: @computeArea

핸들을 사용해 로컬 함수를 호출하여 타원의 면적을 계산합니다.

h.area(3,1)
ans =

    9.4248

또는, localfunctions 함수를 사용하여 모든 로컬 함수의 함수 핸들로 구성된 셀형 배열을 자동으로 만들 수 있습니다. 이러한 접근 방식은 로컬 함수의 이름을 추가, 제거 또는 수정하려는 경우에 편리합니다.

참고 항목

관련 예제

세부 정보